2011-12-12 127 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 –