0

我有一个td这种格式:

<td>
    Business Owner - Delivery Director <br>
    <a href="mailto:me@business.com">me@business.com</a>
</td>

我怎样才能只"Business Owner - Delivery Director"用其他东西替换文本?

使用 this.text() 获取Business Owner - Delivery Directorand me@business.com,但我只想要 Business Owner - Delivery Director.

4

4 回答 4

6

您可以使用该childNodes属性选择第一个文本节点并更改其值:

$('td')[0].childNodes[0].nodeValue = "New content";

这是一个演示:http: //jsfiddle.net/dpyNy/

于 2012-12-07T09:53:58.407 回答
2

用于.contents()获取文本节点(带有CharacterDatainterface),然后操作其内容:

$("td").contents()[0].data = "Businees Owner (CEO)";

jsfiddle.net 上的演示

于 2012-12-07T09:54:13.067 回答
1

使用结构,您必须使用以下方法进行字符串操作split

var td = $("selector_for_the_td_element");
var text = td.html().split("<br>");
text[0] = "new content";
td.html(text.join("<br>"));

...或使用indexOfand substring

var td = $("selector_for_the_td_element");
var text = td.html();
var index = text.indexOf("<br>");
text = "new content" + text.substring(index);
td.html(text);

现在,如果您可以将 HTML 结构更改为:

<td>
    <span>Business Owner - Delivery Director</span><br>
    <a href="mailto:me@business.com">me@business.com</a>
</td>

...它变得容易多了:

$("selector_for_the_td_element > span").text("new content");
于 2012-12-07T09:53:07.267 回答
-1

如果 html 结构正是您发布的内容,您可以这样实现:

this.childNodes[0].nodeValue = 'hello'; //this is the td element
于 2012-12-07T09:59:59.033 回答