2013-09-25 137 views
1

返回0,我用這jQuery選擇總是對象

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> 
+0

願我們知道需要的原因noconflict – mplungjan

回答

3

標籤添加到選擇與:checkbox僞選擇工作:

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

注意這將要求您已經映射了jQuery $j以其它方式使用:

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

JS Fiddl e:http://jsfiddle.net/cUAWw/

由於小提琴似乎工作,但發佈的代碼沒有,當腳本加載時,元素可能不可用。嘗試添加:

var $j = jQuery.noConflict(); 
$(document).ready(function(){ 
    alert($('input:checkbox').length); 
}); 
+0

嗨,謝謝,但它沒有幫助。 – user614946

+0

這只是更好的性能的角度來看,但兩個選擇器具有相同的行爲,找到所有的複選框 –

+2

'$(':checkbox')。長度'工作也一樣!沒有真正需要用選擇器指定標籤名稱。檢查:http://jsfiddle.net/qvW9L/ – techfoobar

4

你必須等待DOM準備:

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

或者只是身體結束標記之前設置代碼:

<script> 
    /*....*/ 
</script> 
</body> 
+2

這我相信是真正的原因。 – techfoobar

+0

@techfoobar更容易一次OP編輯與更多相關信息的問題;) –

+0

是的,這是問題.. – user614946