我遇到问题,弄清楚为什么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>
结果应该是这个例子9,而是我得到0
答案 0 :(得分:20)
$(&#34; h1&#34;)返回一个jQuery对象(其中length属性是返回的元素数),并且由于您在页面完全加载之前调用它,它实际上是重新调整0元素
你想要的是:
$(document).ready(function() {
var count = $("h1").text().length;
alert(count);
});
答案 1 :(得分:5)
你得到0因为在代码运行时没有加载h1所以首先需要将它放在document.ready中。这仍然无法给出您想要的答案,因为它只会告诉您页面上的h1标签数量。要获得您想要的答案:
$(document).ready(function() {
var count = $('h1').text().length;
alert(count);
});
答案 2 :(得分:2)
试试这个:
$(document).ready(function(){
var count = $('h1').text().length;
alert(count);
})
答案 3 :(得分:0)
我这样使用,完成...
$('#MEDIA_TUTORIAL_KATEGORI_DESCRIPTION')。on('keyup',function(){ var count = $(this).val()。length; if(count> = 150){var textColor ='text-danger'; } else {var textColor ='text-success'; } $('。counter')。html(''+ count +''); });
$('#MEDIA_TUTORIAL_KATEGORI_DESCRIPTION').on('keyup',function() {
var count = $(this).val().length;
if(count>=150){ var textColor='text-danger'; }else{ var textColor='text-success'; }
$('.counter').html('<span class="'+textColor+'">'+count+'</span>');
});
答案 4 :(得分:-2)
<script type="text/javascript">
var count = $('h1').html().length;
alert(count);
</script>
$('h1')
是对象,所以长度为0(第一个,或唯一的一个)
你需要.html()
来获取内容,然后检查长度