2012-01-25 36 views
6

Tôi đang gặp sự cố để tìm ra lý do tại sao bộ đếm chuỗi jquery không hiển thị cho tôi kết quả mong đợi.Ký tự đếm Jquery

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script type="text/javascript"> 
var count = $('h1').length; 
alert(count); 

</script> 

</head> 
<body> 

<h1>some text</h1> 

</body> 
</html> 

kết quả nên được với ví dụ này 9, nhưng thay vào đó tôi nhận được 0

Trả lời

15

$ ("h1") trả về đối tượng jQuery (trong đó thuộc tính độ dài là số phần tử được trả về) và vì bạn đang gọi nó trước khi trang được tải hoàn toàn, nó thực sự retuning 0 phần tử.

gì bạn muốn là:

$(document).ready(function() { 
    var count = $("h1").text().length; 
    alert(count); 
}); 
+2

thay đổi độ dài() thành chiều dài – zamil

-2
<script type="text/javascript"> 
var count = $('h1').html().length; 
alert(count); 

</script> 

$('h1') là đối tượng, do đó chiều dài là 0 (cái đầu tiên, hoặc là người duy nhất)

bạn cần phải .html() để có được whats bên trong, sau đó kiểm tra chiều dài

+0

"$ ('h1') là đối tượng, do đó độ dài là 0" sai. Đó là 0 vì nó chưa được tải. Độ dài $ ('h1') sẽ trả về số phần tử h1. –

2

thử điều này:

$(document).ready(function(){ 
    var count = $('h1').text().length; 
    alert(count); 
}) 
+0

'fucntion' ...? –

+0

Tôi đã sửa lỗi đánh máy :) –

5

Bạn đang nhận được 0 vì has not h1 nạp khi mã đã được chạy vậy, trước tiên bạn cần phải đặt nó bên trong một document.ready. Điều này vẫn sẽ không cung cấp cho câu trả lời bạn muốn vì nó sẽ chỉ cho bạn biết số lượng thẻ h1 trên trang. Để nhận được câu trả lời bạn muốn, bạn cần làm:

$(document).ready(function() { 
    var count = $('h1').text().length; 
    alert(count); 
}); 
Các vấn đề liên quan