JQuery html()调用不';t强制attr更新后返回值
也许我不理解这里的一些基本内容,但是html()调用不会返回填充了所有属性的元素,即使在显式调用设置属性之后也是如此 例如,我有一个文本框: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
<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