如何使用jquery迭代选择器的结果
我有一些复选框,当选择多个复选框时,我想更改它们的背景颜色。我正在尝试这样:
var checked = $("input[@type=checkbox]:checked");
$('tr[name="' + checked.attr('name') + '"]').each(function() {
$(this).css('background-color', '#0000DD');
});
只有第一个选择的更改是颜色,其他选择的不是,你能帮助我吗?选择器只给出第一个输出吗?
这样解决:
$("input[type=checkbox]:checked").parents('tr').css('background-color', '#0000DD');
i've some checkbox and i want to change background color of them when are selected more than one checkbox. I'm trying from this way:
var checked = $("input[@type=checkbox]:checked");
$('tr[name="' + checked.attr('name') + '"]').each(function() {
$(this).css('background-color', '#0000DD');
});
only the first selected changes is color and the other selected no, can you help me? does selector give in output only the first?
SOLVED IN THIS WAY:
$("input[type=checkbox]:checked").parents('tr').css('background-color', '#0000DD');
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
jQuery 不是 XPath。省略
@
。此外,.css
方法将样式应用于集合中的所有元素,因此您可以省略.each
。编辑:我认为您误解了方法逻辑。
如果要更改容器
元素的样式,则必须循环遍历复选框集合中的每个元素,并对其运行一些代码:
jQuery is not XPath. Omit the
@
. Also, the.css
method applies the style to all elements ib the collection, so you can omit.each
.Edit: I think that you misunderstand the method logic.
If you want to change the style of the container
<tr>
element, you have to loop through every element in the checkbox collection, and run some code on it:.attr 只会返回第一个匹配元素的属性。您必须遍历第一个选择器的结果(并且还要选择不带@的属性):
.attr will only return the attribute of the first matched element. You have to traverse the result of the first selector (and also select the attribute without an @):
将
[@type=checkbox]
替换为[type=checkbox]
或仅替换 ':checkbox`。试试这个。Replace
[@type=checkbox]
by[type=checkbox]
or just ':checkbox`. Try this.