仅替换文本部分

时间:2016-03-29 12:37:23

标签: jquery

如何在此处仅替换文本部分Regret/Rlwl1,保留input元素:

<td id="td1" style="color: rgb(255, 0, 0);"><input type="RADIO" name="lccp_class4" value="3A">
Regret/Rlwl1</td>

1 个答案:

答案 0 :(得分:1)

我自己的方式,但有更好的方法。

&#13;
&#13;
$(function () {
  $("#test").contents().each(function () {
    if (this.textContent.trim().length > 0)
      $(this).replaceWith('Hello');
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test">
  <input type="RADIO" name="lccp_class4" value="3A">
  Regret/Rlwl1
</div>
&#13;
&#13;
&#13;

<强>更新

对于那些因任何原因无法看到输出的人,我明白了:

更好的版本:

$(selector).contents().filter(function() {
  return this.nodeType == 3;
})
.replaceWith(something_else);

工作代码段

&#13;
&#13;
$(function () {
  $("#test").contents().filter(function() {
    return this.nodeType == 3;
  })
  .replaceWith("Hello");
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test"><input type="RADIO" name="lccp_class4" value="3A">Regret/Rlwl1</div>
&#13;
&#13;
&#13;