Jquery Selector始终为Object返回0

时间:2013-09-25 08:47:50

标签: jquery visualforce

我正在使用此

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>

2 个答案:

答案 0 :(得分:4)

你必须等待DOM准备好了:

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

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

<script>
   /*....*/
</script>
</body>

答案 1 :(得分: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);
});