我正在使用javascript setAttribute
跟随以下列方式将'lorem ipsum'更改为'come':
<span id="pop_title" name="pop_title" class="title01_mc10401 ff_1 fs_10 fc22 fsb">lorem ipsum</span>
脚本:
function modifyDOM(){
var elem_pop = document.getElementById("pop_title");
elem_pop.setAttribute("value","coming");
}
当我在firebug中检查时,它显示了value属性随即将添加,但它反映在浏览器中(我使用的是mozilla 3.0.5) 可能是什么问题?我需要设置不同的属性??
答案 0 :(得分:2)
span元素没有value
属性。请尝试改为设置innerHTML
:
elem_pop.innerHTML = "coming";
答案 1 :(得分:2)
有两种方法可以做到这一点(正确)。您可以在此处使用此跨浏览器方法:
elem_pop.appendChild( document.createTextNode('coming') );
另一种方法是使用elem_pop.textContent
和/或elem_pop.innerText
,但遗憾的是这些不适用于跨浏览器。 IE仅支持innerText
,Firefox,Chrome仅支持textContent
- Opera是唯一支持两者的。
您可以使用elem_pop.innerHTML
,但是请注意innerHTML
插入HTML标记,而不仅仅是文本到页面中。这意味着它不会将任何特殊字符转义为实体。它还会自动替换任何子节点,并可以销毁事件侦听器。
我建议使用第一个(appendChild()
)方法,但如果您想使用textContent/innerText
,可以将其放在脚本的顶部:
HTMLElement.prototype.__defineGetter__('innerText', function(){ return this.textContent; });
HTMLElement.prototype.__defineSetter__('innerText', function(t){ this.textContent=t; });
这将为Firefox innerText
提供支持,您可以随意使用它。
答案 2 :(得分:1)
在此处使用.innerHTML
,如下所示:
function modifyDOM(){
var elem_pop = document.getElementById("pop_title");
elem_pop.innerHTML = "coming";
}
You can try it here。将value
属性设置为<input>
元素,当您想要替换元素标签中的html时,请改用.innerHTML
。