更改不属于任何标记的div元素内的文本

时间:2013-09-03 01:28:31

标签: javascript jquery html

如果我有这样的div元素:

<div class="span5">
    <div id="msg" class="alert">
        <button type="button" class="close" data-dismiss="alert">&times;</button>
        <strong>Hello!</strong> world
    </div>
</div>

并希望只更改msg元素中的文本。如何更改不属于任何标记的文本(在本例中为world

我现在正在执行此操作来更改<strong>中的文字:

$("#clickme").click(function () {
  $("#msg strong").html("Bye");
}); 

我不想将world包装在任何标签中,除非它们不会混淆任何格式。

3 个答案:

答案 0 :(得分:0)

span标签,除非你把它搞砸在CSS中,否则根据定义不应用任何格式。我经常使用它们来达到这个目的。

<div class="span5">
    <div id="msg" class="alert">
        <button type="button" class="close" data-dismiss="alert">&times;</button>
        <strong>Hello!</strong> <span id="world">world</span>
    </div>
</div>

答案 1 :(得分:0)

我认为你不能这样做,我认为你不应该这样做,我认为最好选择你的DOM的特定元素,而不是“任何没有任何标签的东西”,这很容易将来会有所不同。 你为什么不用一个跨度或类似的东西包裹它?

来自w3schools span

  

&lt; span&gt;标签本身不提供视觉变化

答案 2 :(得分:0)

span是一种解决方案。作为替代方案,您还可以迭代childNodes并更改最后一个文本节点。 (当然我也会推荐跨度方法)。

var allNodes = $("#msg")[0].childNodes;
var textNode = allNodes[allNodes.length-1];
textNode.nodeValue = "bye";