1

我一直在寻找我的问题的答案,但找不到确切的答案。这是我拥有且无法更改的 HTML:

<div class="metadata"> 
    <span class="meta"> 
        <span>    
        </span>     
    </span> 
    <a class="sourceTitle" href="#">Link to site</a> 
      11d

     &nbsp;//&nbsp; 
    <span class="action">preview</span> 
</div>

基本上我需要将 更改11dMarch 13th. 我弄清楚了它背后的所有算法,但看在上帝的份上,我找不到替代它的方法。我在这里有一个 JSFiddle:http: //jsfiddle.net/7tPTu/2/

4

3 回答 3

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"));

演示:http: //jsfiddle.net/DerekL/eBwjT/

于 2013-03-25T02:30:43.440 回答
0

您需要将“11d”放入它自己的跨度并给它一个ID。然后你可以这样做:

$("#yourSpanId").text(yourText);

这将使用 yourText 更新 yourSpanId。(如果您对字符串进行硬编码,则需要加上引号:

$("#yourSpanId").text("some text");
于 2013-03-25T02:24:21.430 回答
0

你也可以在没有 jQuery 的情况下使用 innerHTML 或 innerText 属性来做到这一点。

document.querySelector(".sourceTitle").innerHTML = "March 13th";
于 2013-03-25T02:32:13.027 回答