我有以下代码:
<ul id="litemsd">
<li class="litemd">
<input type="checkbox" id="d1" name="d1" />
<label for="d1">Number One</label>
</li>
<li class="litemd">
<input type="checkbox" id="d2" name="d2" />
<label for="d2">Numer Two</label>
</li>
<li class="litemd">
<input type="checkbox" id="d3" name="d3" />
<label for="d3">Numer Three</label>
</li>
</ul>
在表单的提交观察函数中,我尝试迭代选中的复选框:
$$('li.litemd').pluck('checked').each(function(s) {
alert(s.next().innerHTML)
});
但是当达到该代码时,firebug中会弹出以下错误:
"s is undefined"
任何提示?
答案 0 :(得分:0)
$$('li.litemd').pluck('checked').each(function() {
alert($$(this).next().innerHTML)
});
答案 1 :(得分:0)
.pluck()
返回一个值数组(无论你传入的是什么属性名称),所以它不会将结果过滤到checked
个,它实际上会返回一个[false, false, false]
数组。
相反,我认为你想要这个:
$$('li.litemd input').each(function(s) {
if(s.checked) alert(s.next().innerHTML)
});
You can give it a try here,请注意向选择器添加了input
,因为您正在查看<input>
内的{{1>} <li>
的属性},而不是<li>
本身。
答案 2 :(得分:0)
我认为你混淆了pluck()处理HTML属性的属性。无论如何,在初始选择器的一部分中添加伪类检查更容易,例如:
$$('li.litemd input:checked').each(function(s) {
alert(s.next().innerHTML);
});