2012-05-07 10 views
2

我是jquery和asp.net的新手。我正在使用以下編碼來檢索值。爲什麼使用$(#textbox1)[0] .value中的[0]?有沒有其他的方法來檢索價值?

$.ajax({ 
        type: "POST", 
        url: "Default.aspx/GetTextData", 
        data: "{}", 
        contentType: "application/json", 
        dataType: "json", 
        success: function(msg) { 
         $("#txtResult")[0].value = msg.d; 
        } 
       }); 

非常感謝

+0

你可以用'$('#txtResult').val(msg.d)'代替 –

+0

也許你有很多txtResults,你只贏了第一個。 – Aristos

+0

@Aristos - 你不能擁有它們中的很多,因爲你會碰到ID衝突,你只能在頁面上擁有一個給定ID的控件,否則就會出現問題。 –

回答

2

在你的代碼的情況下,它不是真正取回價值,它的設置:

$("#txtResult")[0].value = msg.d

您可以使用替代,jQuery的語法(按我的評論):

$('#txtResult').val(msg.d)

需要使用[0],因爲該代碼的作者希望爲輸入的標準DOMElement賦值,因爲[0]用於從該jQuery對象獲取本地DOMElement。或者您可以使用:

$('#txtResult').get(0).value = msg.d

雖然以前的辦法仍然是preferrable

0

我會建議使用$("#txtResult").val(msg.d),而不是因爲這是jQuery的功能。

之所以使用[0]是代替訪問jQuery的一個的DOM元素(例如,你不能因爲.val運行$("#txtResult")[0].val(msg.d)是一個jQuery功能)

$("#txtResult").val(-something-)實際上是設置值(未檢索作爲你寫在你的問題)。

$("#txtResult").val()是用於從元素中檢索值的命令。

相關問題