2011-12-02 72 views
3

我使用的jQuery與localStorage的力量。JQuery - 使用.html()設置後獲取.html()

以下是我有:

<textarea name="localStorageString" id="localStorageString"></textarea> 
<script> 
    var userJson = localStorage.getItem('userJson'); 
    $('#localStorageString').html(userJson); 
    $('#localStorageString').keyup(function(){ 
    alert($(this).html()); 
}); 

textarea填寫正確,問題是,當我修改它,它總是提醒相同的值(由html(userJson)設置)。

有什麼想法?

回答

2

我忘了這一個。爲什麼.html()不起作用?

html() - 這是原生JavaScript .innerHTML函數。它將標籤內的所有內容(所有節點)都視爲一個字符串。

<div id="Node"> 
    <a href="#">Hello</a> 
</div> 
console.info($('#Node').html()); // <a href="#">Hello</a> 

val() - 那就是form.element.value

+0

好的。但在textarea的情況下,爲什麼不會是相同的結果? – Max13

+0

其jQuery API。我想它爲您提供了對錶單元素及其值的統一訪問。這真的很有道理。 – erlrange

2

請勿使用html(),請使用val()

4

您需要$(this).val()才能獲取表單元素的值。

+0

-_-' 好吧......我忘了這一個。爲什麼.html()不起作用? – Max13

1

簡單:不要在<textarea>(或其他表單元素)上使用.html()。使用.val()(或.value)。

$('#localStorageString').val(userJson) 
.keyup(function() { 
    console.log(this.value); 
}); 

http://jsfiddle.net/mattball/Zz2cF/