1

我正在使用这个

alert($j(':checkbox').length);

我的页面的输入元素为:

<input id="pageId:formIds:refOut:pdsectionId:pbtable:1:check1" type="checkbox" name="pageId:formIds:refOut:pdsectionId:pbtable:1:check1" class="foo">

长度仍然为零。

请注意,Jquery Lib 正在加载且没有错误。

完整代码:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
    $j = jQuery.noConflict();
    alert($j('input:checkbox').length);
</script>
4

2 回答 2

4

你必须等待 DOM 准备好:

$(function(){
    alert($j(':checkbox').length); //FYI prefixed with element type is preferred: $j('input:checkbox')
});

或者在正文结束标记之前设置您的代码:

<script>
   /*....*/
</script>
</body>
于 2013-09-25T08:54:59.837 回答
3

将标签添加到选择器以使用:checkbox伪选择器:

alert($j('input:checkbox').length);

请注意,这将要求您已映射 jQuery 以$j其他方式使用:

alert($('input:checkbox').length);

JS 小提琴:http: //jsfiddle.net/cUAWw/

由于小提琴似乎有效,但发布的代码无效,因此在脚本加载时该元素可能不可用。尝试添加:

var $j = jQuery.noConflict();
$(document).ready(function(){
   alert($('input:checkbox').length);
});
于 2013-09-25T08:48:55.290 回答