Jquery 访问重嵌套输入
Jquery Accessing Heavily Nested Input
我正在尝试访问大量嵌套在一组 <span></span>
和一个 <p></p>
中的输入。我无法更改它的嵌套方式,所以我唯一能做的就是尝试找到一种访问它的方法。下面是我的代码嵌套的方式。 (无法更改)。 inb4 我的 JQuery 已启用 我事先做了一些测试警报。
<div id="chargeRequest ">
<p>Chargeable Request - If selected fill section below<br>
<span class="wpcf7-form-control-wrap checkbox-397">
<span class="wpcf7-form-control wpcf7-checkbox">
<span class="wpcf7-list-item first last">
<input type="checkbox" name="checkbox-397[]" value="yes">
<span class="wpcf7-list-item-label">yes
</span>
</span>
</span>
</span>
</p>
</div>
尝试次数
我试图让 JQuery 在勾选复选框时发出简单警报,但我似乎无法访问它。以下是我尝试过的东西
第一个例子我从最外面的 div 开始,看看它是否可以找到并输入选中的 属性。这里似乎什么都没发生
if ($('#chargeRequest').find('input').prop('checked')) {
alert('test');
}
第二次尝试我也在尝试使用跨度 class 一层,然后找到一个输入。一旦它找到一个,它就会检查它是否被检查过。 Nopthign也发生在这里。
if ($('.checkbox-397').find('input')) {
if (this.is('checked')) {
alert('test');
}
}
第三次尝试我走投无路,尝试做一个大的嵌套链。这不起作用,请参见下面的 2 次嵌套尝试。
if ($('#chargeRequest>p>span>span>input:checked')) {
alert('test');
}
}
if ($('#chargeRequest>p>span>span>input').is(':checked')) {
alert('test');
}
}
上面的方法我也试过.prop()
都没有>
我认为问题是标记中选择器 ID 中的 </code> space:</p>
<pre><code><div id="chargeRequest ">
改为:
<div id="chargeRequest">
在下面的测试中找到它。
if ($('#chargeRequest').find('input').prop('checked')) {
alert('test');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="chargeRequest">
<p>Chargeable Request - If selected fill section below<br>
<span class="wpcf7-form-control-wrap checkbox-397">
<span class="wpcf7-form-control wpcf7-checkbox">
<span class="wpcf7-list-item first last">
<input type="checkbox" name="checkbox-397[]" value="yes" checked>
<span class="wpcf7-list-item-label">yes
</span>
</span>
</span>
</span>
</p>
</div>
您的第一次尝试应该可以,只有一件事,从 id 中删除 space。
<div id="chargeRequest ">
应该是 <div id="chargeRequest">
您也可以select这样输入:
if ($('#chargeRequest input').prop('checked')) {
alert('test');
}
查看 Fiddle
$('input').click(function() {
if ($('#chargeRequest input').prop('checked')) {
alert('test');
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="chargeRequest">
<p>Chargeable Request - If selected fill section below
<br>
<span class="wpcf7-form-control-wrap checkbox-397">
<span class="wpcf7-form-control wpcf7-checkbox">
<span class="wpcf7-list-item first last">
<input type="checkbox" name="checkbox-397[]" value="yes" />
<span class="wpcf7-list-item-label">yes
</span>
</span>
</span>
</span>
</p>
</div>
我正在尝试访问大量嵌套在一组 <span></span>
和一个 <p></p>
中的输入。我无法更改它的嵌套方式,所以我唯一能做的就是尝试找到一种访问它的方法。下面是我的代码嵌套的方式。 (无法更改)。 inb4 我的 JQuery 已启用 我事先做了一些测试警报。
<div id="chargeRequest ">
<p>Chargeable Request - If selected fill section below<br>
<span class="wpcf7-form-control-wrap checkbox-397">
<span class="wpcf7-form-control wpcf7-checkbox">
<span class="wpcf7-list-item first last">
<input type="checkbox" name="checkbox-397[]" value="yes">
<span class="wpcf7-list-item-label">yes
</span>
</span>
</span>
</span>
</p>
</div>
尝试次数
我试图让 JQuery 在勾选复选框时发出简单警报,但我似乎无法访问它。以下是我尝试过的东西
第一个例子我从最外面的 div 开始,看看它是否可以找到并输入选中的 属性。这里似乎什么都没发生
if ($('#chargeRequest').find('input').prop('checked')) {
alert('test');
}
第二次尝试我也在尝试使用跨度 class 一层,然后找到一个输入。一旦它找到一个,它就会检查它是否被检查过。 Nopthign也发生在这里。
if ($('.checkbox-397').find('input')) {
if (this.is('checked')) {
alert('test');
}
}
第三次尝试我走投无路,尝试做一个大的嵌套链。这不起作用,请参见下面的 2 次嵌套尝试。
if ($('#chargeRequest>p>span>span>input:checked')) {
alert('test');
}
}
if ($('#chargeRequest>p>span>span>input').is(':checked')) {
alert('test');
}
}
上面的方法我也试过.prop()
都没有>
我认为问题是标记中选择器 ID 中的 </code> space:</p>
<pre><code><div id="chargeRequest ">
改为:
<div id="chargeRequest">
在下面的测试中找到它。
if ($('#chargeRequest').find('input').prop('checked')) {
alert('test');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="chargeRequest">
<p>Chargeable Request - If selected fill section below<br>
<span class="wpcf7-form-control-wrap checkbox-397">
<span class="wpcf7-form-control wpcf7-checkbox">
<span class="wpcf7-list-item first last">
<input type="checkbox" name="checkbox-397[]" value="yes" checked>
<span class="wpcf7-list-item-label">yes
</span>
</span>
</span>
</span>
</p>
</div>
您的第一次尝试应该可以,只有一件事,从 id 中删除 space。
<div id="chargeRequest ">
应该是 <div id="chargeRequest">
您也可以select这样输入:
if ($('#chargeRequest input').prop('checked')) {
alert('test');
}
查看 Fiddle
$('input').click(function() {
if ($('#chargeRequest input').prop('checked')) {
alert('test');
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="chargeRequest">
<p>Chargeable Request - If selected fill section below
<br>
<span class="wpcf7-form-control-wrap checkbox-397">
<span class="wpcf7-form-control wpcf7-checkbox">
<span class="wpcf7-list-item first last">
<input type="checkbox" name="checkbox-397[]" value="yes" />
<span class="wpcf7-list-item-label">yes
</span>
</span>
</span>
</span>
</p>
</div>