我有这样的结构:
<div class="comment">
Some text goes here.
<div class="controls">
Controls go here.
</div>
</div>
如何在不影响controls
div?
显然,可以在“有些文字在这里”添加另一个div,然后替换它的内容,但为了这个问题,假设我不能。
答案 0 :(得分:3)
这可以在不修改现有HTML的情况下实现。只需使用jQuery查找文本节点,然后通过直接访问DOM来更改其值。
$('.comment').contents()[0].nodeValue = 'Some other text goes here.';
请参阅.contents()的jQuery文档和.nodeValue的MDN文档。
答案 1 :(得分:0)
而不是文本周围的“div”,也许是一个跨度所以它是内联的。或者使用:
<div class="comment">
Some text goes here.
<div class="controls">
Controls go here.
</div>
</div>
<script>
var c = $('.comment').eq(0);
c.html(c.html().replace('Some text goes here', 'Blah blah blah'));
</script>
答案 2 :(得分:0)
我会这样:
$(function() {
var children = $('.comment').children();
$('.comment').text('har').append(children);
});
答案 3 :(得分:0)
使用jQuery定位controls
div,然后将其转换为DOM节点并使用本机JS更改文本
var textNode=$('.comment').find('.controls')[0].previousSibling
textNode.nodeValue='New Text From Script'