如何仅更改链接中的文本

时间:2015-06-12 14:28:37

标签: javascript jquery

我有以下链接,我想修改其文本来自"新的子网站"到"创建新的客户网站": -

enter image description here

所以我写了下面的jquery: -

$('a#createnewsite').text('Create New Customer Site');

不仅替换了文本,还替换了包含" +"的范围。图像,虽然我试图保留除了替换文本之外的所有内容..这是应用jQuery后的结果: -

enter image description here

2 个答案:

答案 0 :(得分:1)

您需要选择文本节点,然后更改其文本。

$('#createnewsite')
    .contents()
    .filter(function() { return this.nodeType === Node.TEXT_NODE; })
    .text('Create New Customer Site');

答案 1 :(得分:1)

可以使用jQuery.contentsjQuery.filter一起选择文本节点:

$(function() {
  $("a#createnewsite").contents().filter(function() {
    // filter text nodes that contain one or more non-whitespace characters
    return this.nodeType === Node.TEXT_NODE && /\S/.test(this.nodeValue);
  }).replaceWith("new text");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<a id="createnewsite" href="#">
  <span>
    <img src="http://dummyimage.com/64x64/000/fff" width="64" height="64">
  </span>
  new subsite
</a>