在javascript或jquery中更改outerHTML

时间:2012-10-30 10:05:35

标签: javascript jquery

我想更改outerHTML,这就是我所做的:

$(data.description)[0].outerHTML = $(data.description)[0].outerHTML.replace('red', 'black');

值为:

$(data.description)[0].outerHTML: "<p style="color: red;">desc1</p>"

它不会改变。如何改变?

data.description有这个值:

<p style="color: red;">desc1</p><p style="color: red;">desc2</p>

我只想改变$(data.description)[0]。

以下是我的全部代码:

var ingsLines = $(data.description);
for (var i =0; i < ingsLines.length; i++) {
    if (someCondition) {
        $(data.description).eq(i).css('color', 'black');
    }
}
try{$('#myTextarea').html(data.description);}catch(err){}

代码更改了值,它将黑色而不是红色,但data.description保持红色。

2 个答案:

答案 0 :(得分:1)

使用

$(data.description).replaceWith(function(){
    return this.outerHTML.replace('red', 'black')
});

Demonstration

如果您只想更改第一个,可以使用:

$(data.description).eq(0).replaceWith(function(){
    return this.outerHTML.replace('red', 'black')
});

答案 1 :(得分:1)

如果要更改第一个元素的颜色属性,可以使用csseq方法:

$(data.description).eq(0).css('color', 'black');