我在下面有html。我想做的事情取决于某些条件。我想继续更改Sometitle
的文字。
<div id="header">
Sometitle
<div>
<div>
aa
</div>
<div>
bb
</div>
</div>
</div>
我尝试使用下面的Jquery,但它也删除了其他div。
$("#header").text("Its a thrusday today !");
我如何完成这项工作?在任何情况下我都无法修改此HTML。我只需要使用jquery并完成这件事。
这是我创建的一个jsfiddle:http://jsfiddle.net/qYUBp/
答案 0 :(得分:3)
那个文本Sometitle
是一个孤儿节点,你想要在它周围包裹一个元素来正确操作它
<div id="header">
<span>Sometitle</span>
<div>
<div>
aa
</div>
<div>
bb
</div>
</div>
</div>
修改强>
但是,由于您遗憾地无法更改html,您可以按照other post中的解决方案建议进行操作。他们在这里纠正了一个错字:
var your_div = document.getElementById('header');
var text_to_change = your_div.childNodes[0];
text_to_change.nodeValue = 'new text';
检查您的updated JsFiddle
答案 1 :(得分:3)
如果你不想把它放在一行。
var tmp=$("#header>div").html();
$("#header").text("its thursday").append('<div>'+tmp+'</div>');
答案 2 :(得分:0)
试试这个
$("#header").html($("#header").html().replace("Sometitle","Its a thrusday today !"));
答案 3 :(得分:0)
仅适用于此情况,在渲染到浏览器时
var new_s = "Its a thrusday today !";
var s = $("#header").children(":first").html();
$("#header").text(new_s+"<div>"+s+"</div>");
答案 4 :(得分:0)
headerClone = $("#header").clone();
$(headerClone).find('div').remove();
var currentText = $(headerClone).html().replace(/(\r\n|\n|\r|\t)/gm,"");
newHtml = $("#header").html().replace(currentText,"Gotcha");
$("#header").html(newHtml);