2011-05-27 57 views
3
<div id="foo">yyy<span>xxx</span></div> 

我有我的html的上述結構。我想在yyy位置插入一些內容。你能讓我知道什麼是選擇器嗎? 我想傳遞選擇器somefunction和功能會做$(selector).html('content')關於jQuery選擇器的問題

回答

6
var s = $('#foo span'); 
$('#foo').text("hello").append(s); 

演示:http://jsfiddle.net/uTNTF/

或者,如果更新HTML是一個選項,然後只需在包裝yyy 10將讓你的生活變得簡單許多:

$('#foo span:first-child').text("hello"); 

演示:http://jsfiddle.net/uTNTF/1/

+0

這可能是最乾淨的方法。 – AaronShockley 2011-05-27 15:12:50

2

你可以(在匹配的元素插入內容,由指定的參數,每個元素的開頭)使用jQuery .prepend()功能:

$('#foo').prepend('some content'); 
+0

或者'$( '#富跨度')前(...)'。 (特別是如果你有多個元素,並希望插入它們之間的東西) – zzzzBov 2011-05-27 15:05:01

+0

這不會刪除'yyy'並插入我的內容。 – 2011-05-27 15:05:40

0

我不認爲這是一個神奇的單一選擇,將選擇一些純文本容器內,但不是所有的內容。

如果您想更換「YYY」與「某些內容」,你可以這樣做以下:

$('#foo').html('some content' + $('#foo span').html()) 
0

標記的您發佈的「YYY」部分中的DOM表示爲文本節點。 jQuery沒有任何用於隔離文本節點的方法或選擇器,但是DOM確實如此。

在這裏看到(你的問題可能被視爲該項目重複): How do I select text nodes with jQuery?

1

yyy應該rellay是塊元素,讓您可以輕鬆地發現它,否則我看不出有什麼比哈克其他選項:

$('#foo').html($('#foo').html().replace('yyy','')).find('span').before('new content'); 

活生生的例子:http://jsfiddle.net/MTu6c/