JQuery html()调用不';t强制attr更新后返回值

JQuery html()调用不';t强制attr更新后返回值,jquery,firefox,dom,Jquery,Firefox,Dom,也许我不理解这里的一些基本内容,但是html()调用不会返回填充了所有属性的元素,即使在显式调用设置属性之后也是如此 例如,我有一个文本框: <input type="text" id="foo" value="" /> 在该函数中存在以下代码: function updateFoo(input) { // force DOM update?? $('#'+input.id).attr('value', input.value); // successfully di

也许我不理解这里的一些基本内容,但是html()调用不会返回填充了所有属性的元素,即使在显式调用设置属性之后也是如此

例如,我有一个文本框:

<input type="text" id="foo" value="" />
在该函数中存在以下代码:

function updateFoo(input) {
  // force DOM update??
  $('#'+input.id).attr('value', input.value);

  // successfully displays value user entered
  alert($('#'+input.id).attr('value')); 

  // displays input element, with value not filled in,
  // like: 'input type="text" id="foo" value="" />'
  alert($('#'+input.id).parent().html()); 

  ...
}
html()调用不应该返回设置了value属性的元素吗

我在Max OSX上使用Firefox 3.6.13

我看到这个论坛帖子: 我的一些假设是基于

谢谢,
Galen

我认为这是
value
具有非常特殊用途这一事实的副作用。我设想该值存储在某个本地属性中,而不是存储在DOM本身中

如果您将
attr
更改为其他内容,如
newattr
,则它可以正常工作:


当然,这对
属性没有帮助…

在研究了更多内容后,我偶然发现了这篇文章:

这基本上概括了我的问题。基本上这是firefox的实现问题

而不是:

$('#'+input.id).attr('value', input.value);
我现在正在使用:

input.setAttribute('value', input.value); // force DOM update

解决了问题

谢谢你的回复。是的,新属性似乎得到了很好的更新。我用另一种方法解决了这个问题(见我在这篇文章中的答案)
input.setAttribute('value', input.value); // force DOM update