JQuery - 使用.html()设置后获取.html()

问题描述:

我使用的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)设置)。

有什么想法?

我忘了这一个。为什么.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

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

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

+0

-_-' 好吧......我忘了这一个。为什么.html()不起作用? – Max13

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

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

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

尝试使用的.val()代替.html()

.val()http://api.jquery.com/val

.html()http://api.jquery.com/html