Javascript 原型中数组中的未定义变量

Javascript 原型中数组中的未定义变量,javascript,prototypejs,undefined,Javascript,Prototypejs,Undefined,我有以下代码: <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" />

我有以下代码:

<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>
但当到达该代码时,firebug中会弹出以下错误:

"s is undefined"
有什么提示吗

$$('li.litemd').pluck('checked').each(function() {
  alert($$(this).next().innerHTML)
});

返回一个值数组(无论您传入了什么属性名称),因此它不会将您的结果过滤到选中的
值,而是直接返回一个
[false,false,false]
数组

相反,我认为你想要这个:

$$('li.litemd input').each(function(s) {
  if(s.checked) alert(s.next().innerHTML)
});

,请注意在选择器中添加了
input
,因为您是在
  • 中检查
    的属性,而不是在
  • 本身上进行检查。

    我认为您混淆了Pull()使用的属性与HTML属性。无论如何,添加checked的伪类作为初始选择器的一部分更容易,如:

    $$('li.litemd input:checked').each(function(s) {
          alert(s.next().innerHTML);
      });
    

    你应该发布Pulk的做法感谢你的回应。没有错误,但无法识别选中的项目。@xain-它应该,就像在演示中一样…您得到了什么行为?不,“$$(此)。next不是函数”
    $$('li.litemd input:checked').each(function(s) {
          alert(s.next().innerHTML);
      });