2011-12-12 77 views
0

只显示第一个警报。与jquery和getElementById混淆

我已经试过一次只能有一个时间,不过,只有当之前的getElementById它的工作原理是......

$('#t').keyup(function() { 

alert('1'); 

var a = document.getElementById('t').value; 

alert(a); 

} 
+0

您的问题是什么?你的html是什么?你有一个[JS小提琴演示(http://jsfiddle.net/)再现您的问题..?为什么不简单'提醒($(this).val());'? –

+0

一次一个?你是说你有多个具有相同ID的元素? – RightSaidFred

+0

为什么你需要这两个功能?它是jQuery和JavaScript的混合。 – punit

回答

5

嗯,没有,这两个警报显示为出现在this live demo完美的罚款。顺便说一句,如果你已经在你的应用程序中使用jQuery,你不应该再需要document.getElementById了。您应该使用jQuery的等价物,在这种情况下,将是.val()功能:

阿和最后但并非最不重要你有没有注意到在我的代码,在你缺少结尾处的右);

当然,IDS在HTML文档应该是独特的意义,你可以在你的整个页面只有一个元素id="t",否则你会得到无效的标记。

2

您的代码中有语法错误。也许这应该是:

$('#t').keyup(function() { 

    alert('1'); 

    var a = document.getElementById('t').value; 

    alert(a); 

}); 

而且你应该能够只是做:

$('#t').keyup(function() { 

    alert('1'); 

    var a = $(this).val(); 

    alert(a); 

}); 
2

你的代码是缺少一个右);。你根本不应该得到任何警报。我会添加这个,看看事情是否开始按预期工作。

如果你使用jQuery,我会推荐使用id选择符而不是getElementById。进行这些更改会使您的代码如下所示:

$('#t').keyup(function() { 

alert('1'); 

var a = $(this).val(); //document.getElementById('t').value; 

alert(a); 

}); 
+0

或'this.value' –

+1

@AbeMiessler - 我觉得他离开了故意悲伤的眨眼表情。 '(;'+1 –