一個div我有像這樣的結構:更改只是文本中使用jQuery
<div class="comment">
Some text goes here.
<div class="controls">
Controls go here.
</div>
</div>
我怎麼能取代只是「一些文本到這裏」,而不會影響controls
DIV?
很明顯,另一個div可以添加在「有些文字在這裏」,然後它的內容被替換,但爲了這個問題,我假設我不能。
一個div我有像這樣的結構:更改只是文本中使用jQuery
<div class="comment">
Some text goes here.
<div class="controls">
Controls go here.
</div>
</div>
我怎麼能取代只是「一些文本到這裏」,而不會影響controls
DIV?
很明顯,另一個div可以添加在「有些文字在這裏」,然後它的內容被替換,但爲了這個問題,我假設我不能。
這是可能的,而無需修改現有的HTML。只需使用jQuery來查找文本節點,然後通過直接訪問DOM來更改其值。
$('.comment').contents()[0].nodeValue = 'Some other text goes here.';
見.contents() jQuery的文檔和.nodeValue的MDN文檔。
而不是文本週圍的「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>
我想是這樣的:
$(function() {
var children = $('.comment').children();
$('.comment').text('har').append(children);
});
使用jQuery找到controls
格,然後將其轉換爲DOM節點,並使用本地JS來更改文本
var textNode=$('.comment').find('.controls')[0].previousSibling
textNode.nodeValue='New Text From Script'
謝謝,這個偉大的工程。 – bevanb