使用 JQuery 选中父列表项中的复选框?
我对 Javascript 和 JQuery 是全新的,所以我一直在阅读它,并尝试在检查其中一个子项时检查(并设置为非活动状态)父列表项中的复选框。
如果这没有任何意义,请查看列表结构。
<ul>
<li><input type="checkbox" name="items[]" value="88712003" id="88712003" /> Parent 1</li>
<li><input type="checkbox" name="items[]" value="88712003" id="88712003" /> Parent 2
<ul>
<li><input type="checkbox" name="items[]" value="21312341" id="21312341" /> Child 1</li>
<li><input type="checkbox" name="items[]" value="21312341" id="21312341" /> Child 2</li>
</ul>
</li>
<li><input type="checkbox" name="items[]" value="88712003" id="88712003" /> Parent 3</li>
<li><input type="checkbox" name="items[]" value="88712003" id="88712003" /> Parent 4</li>
</ul>
如果选中“子项 1”或“子项 2”,我希望检查“父项 2”中的输入并将其设置为非活动状态。我已经开始研究它,但被困在这里:
$(function(){
$('.child').click(function() {
$(this).parent().parent().parent().toggle();
});
});
如你所见,我没有走得太远。任何帮助将不胜感激。
谢谢!
I'm brand new to Javascript and JQuery, so I've been reading up on it and am trying to check (and set inactive) a checkbox in a parent list-item when one of the children are checked.
If this doesn't make any sense, take a look at the list structure.
<ul>
<li><input type="checkbox" name="items[]" value="88712003" id="88712003" /> Parent 1</li>
<li><input type="checkbox" name="items[]" value="88712003" id="88712003" /> Parent 2
<ul>
<li><input type="checkbox" name="items[]" value="21312341" id="21312341" /> Child 1</li>
<li><input type="checkbox" name="items[]" value="21312341" id="21312341" /> Child 2</li>
</ul>
</li>
<li><input type="checkbox" name="items[]" value="88712003" id="88712003" /> Parent 3</li>
<li><input type="checkbox" name="items[]" value="88712003" id="88712003" /> Parent 4</li>
</ul>
If Child 1 or Child 2 is checked, I want the input in Parent 2 to be checked and set inactive. I've started working on it, but got stuck here:
$(function(){
$('.child').click(function() {
$(this).parent().parent().parent().toggle();
});
});
As you can see, I didn't make it far. Any help would be appreciated.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
根据您发布的标记,这将起作用:
另请注意:
这是无效。
在你的文档中。
.toggle
“显示或隐藏匹配的元素”。它不会切换它们的“禁用”属性。在这里尝试一下:http://jsfiddle.net/karim79/QfTfr/
Based on your posted markup, this will work:
Also note:
which are invalid.
in your document.
.toggle
"displays or hides matched elements". It does not toggle their 'disabled' property.Try it here: http://jsfiddle.net/karim79/QfTfr/
试试这个:
Try this:
.parent() 方法仅返回当前选择器的直接父 DOM 元素。 .parents() 方法将搜索 DOM 树以查找与选择匹配的任何父元素。因此 $(".bar").parents(".foo") 将选择具有类“bar”的任何元素的所有具有类“foo”的父元素。
首先为您的目标父元素提供一个可识别的属性,可以是类,也可以是 id。如果你正在处理 ID,你就不需要parents(),所以使用一个类。
the .parent() method returns only the immediate parent DOM element of your current selector. The .parents() method will search up the DOM tree to find any parent elements that match the selection. So $(".bar").parents(".foo") would select for all parent elements with Class "foo" of any elements with class "bar".
First give your target parent element an identifable attribute, either a class or an id. If you were dealing with IDs, you wouldn't need parents(), so use a class.
检查此 fillde
如果您使用元素的
id
属性,您必须确保它在文档中具有唯一的值。Check this fillde
If you are using the
id
property for elements, you have to make sure that it has a unique value in the document.