jQuery 让 innerHTML 不能在 HTMLFontElement 对象上工作

Posted

技术标签:

【中文标题】jQuery 让 innerHTML 不能在 HTMLFontElement 对象上工作【英文标题】:jQuery to get innerHTML not working on a HTMLFontElement object 【发布时间】:2011-01-30 16:25:33 【问题描述】:

我有 jQuery 来选择所有 font 元素的子元素,这些元素是存储在 var html... 中的 html 中的 id="right"... /p>

alert($("#right > font", html).length);

它给了我一个警报:5

但是当我尝试以下任何一项时,我都没有收到任何警报...

alert($("#right > font", html)[0].html());
alert($("#right > font", html)[0].text());
alert($("#right > font", html)[0].val());

有什么想法吗?

谢谢, 马特

【问题讨论】:

【参考方案1】:

由于元素不是 jQuery 的实例,它只是一个 DOM 对象,因此您不能使用任何 jQuery 方法。您可以使用 innerHTML 来获取结果。

alert($("#right > font", html)[0].innerHTML);

如果你想将任何 jQuery 方法应用到元素上,你必须使它成为一个 jquery 对象,比如

alert($($("#right > font", html)[0]).html());

$("#right > font").each(function()
    alert($(this).html());
);

【讨论】:

稍微详细说明一下:当您访问 jQuery 对象的编号属性时,您得到的是原始 DOM 对象,而不是 jQuery 对象。

以上是关于jQuery 让 innerHTML 不能在 HTMLFontElement 对象上工作的主要内容,如果未能解决你的问题,请参考以下文章

我怎样才能在“.innerHTML”中添加 <g:textField>?

jquery 怎么让一个div的内容未加载完时显示加载中...

[ jquery 方法 html([val|fn]) ] 此方法操作匹配的元素或元素集中的内容,相当于javascript中的innerHTML

JS中使用innerHTML后元素的onclick事件为啥不能触发了?

jQuery:延迟替换 div 的 innerHTML?

jQuery 对象与 Dom 对象转化