我已经找到了我的问题的答案,但无法找到它。这是我拥有的HTML,无法改变:
<div class="metadata">
<span class="meta">
<span>
</span>
</span>
<a class="sourceTitle" href="#">Link to site</a>
11d
//
<span class="action">preview</span>
</div>
基本上我需要将11d
更改为March 13th
之类的内容。我想出了它背后的所有算法,但不能为上帝的爱找到替代它的方法。我在这里有一个JSFiddle:http://jsfiddle.net/7tPTu/2/
答案 0 :(得分:4)
选择文本节点,然后替换文本:
var text = $(".metadata").contents().filter(function () {
return this.nodeType === 3;
}).wrap("<span class='textNode'>");
var target = $("span.textNode:contains('11d')");
target.text(target.text().replace(/11d/, "March 13th"));
答案 1 :(得分:0)
你想把“11d”放入自己的范围并给它一个id。 然后你可以这样做:
$("#yourSpanId").text(yourText);
这将使用yourText更新yourSpanId。 (如果您要对字符串进行硬编码,则需要输入引号:
$("#yourSpanId").text("some text");
答案 2 :(得分:0)
您也可以使用innerHTML或innerText属性在没有jQuery的情况下执行此操作。
document.querySelector(".sourceTitle").innerHTML = "March 13th";