2

我不能使用基本的 $('#div').html("value"); 像我习惯的那样更改 div 的文本。相反,我正在尝试使用 div.setAttribute(...)。有没有办法使用它来设置“html”?

抱歉这个菜鸟问题,我还没有学会以这种方式操作我的 div。

4

5 回答 5

4

如果你有一个 DOM 元素而不是一个 jQuery 对象,你会使用.innerHTML.

div.innerHTML = 'new value';

如果您需要附加内容,您可以在技术上使用:

div.innerHTML += 'new value';

但要非常小心,因为它会破坏现有的嵌套内容并重新创建它。

最好是创建一个元素,将您的内容附加到 using .innerHTML,然后附加新元素的子元素。

var temp_div = document.createElement('div');

temp_div.innerHTML = 'some new content';

while( temp_div.firstChild ) {
    div.appendChild( temp_div.firstChild );
}
于 2011-07-15T14:19:55.507 回答
1

不,您不能使用 setAttribute 设置 DIV 的 html 内容,因为 DIV 元素上没有 html 属性。为什么不能使用 .html()?

您也可以考虑以下作为替代方案:

http://api.jquery.com/text/

于 2011-07-15T14:19:36.763 回答
1

尝试:

div.innerHTML = "New text!";

http://www.w3schools.com/htmldom/dom_using.asp

你也可以做innerText

于 2011-07-15T14:20:33.830 回答
1

你可以用老式的方式来做,使用innerHTML

document.getElementById('mydiv').innerHTML = 'mytext';
于 2011-07-15T14:20:34.003 回答
1

如果你想复制html()jQuery,你可以使用div.innerHTML

于 2011-07-15T14:21:58.943 回答