2010-10-04 55 views
0

我在留言簿中有一些評論。 p containins「(在[」的時候。在‘(在[’有時包含一個列表。jQuery:當p包含列表點時選擇文本

<div class="comment searchable"> 
<p> 
(In <a class="changeset" href="/../" sets mynumber">[Phonebook]</a>) 
</p> 
<ul><li><tt>Name</tt>, <tt>Number</tt> 
</li></ul> 

<p>is <a class="is new entry" href="/../mynumber">new entry</a> 
</p> 
</div>

這是我得到的所有‘(在’的,並在同一行的一些文本。我將它們插入在一個div之後的「盒子」。

$("<div id='createDiv' style='border:1px outset #999966;padding:1em;margin-top:1em'></div>").insertAfter("#changelog"); 
    $("#createDiv").append($("p:contains('In [')").clone());

但我怎麼選擇和插入整個文本時,評論也包含listpoint?

我使用jQapi作爲參考,這是非常有用的。我正在尋找像: p:contains('li')。

非常感謝您提供任何提示。

編輯:我應該站出來:

(在[電話簿])姓名,號碼是新的條目。

現在是: (在[電話簿])

+0

鑑於問題中的示例標記,您希望*出來哪些文本? – 2010-10-04 10:30:42

回答

1

我想你想被替換的內容:

$("p:contains('In [')").clone() 

有了:

$("p:contains('In [')").closest("div").clone() 
//or... 
$("div.comment:contains('In [')").clone() 

或者如果你只是想要孩子:

$("p:contains('In [')").closest("div").children().clone() 
//or... 
$("div.comment:contains('In [')").children().clone() 

這裏有幾個選項,具體取決於您希望編輯的樣子。如果你只是關心文本例如,這就夠了:

$("div.comment:contains('In [')").text() 
+0

謝謝你一千次。現在工作正常。我選擇了第一個選項。 – Faili 2010-10-04 11:02:10

0

我猜你是找誰:has()

+0

($(「p:contains('In ['),p:has(li)」)。clone())。appendTo($(「#createDiv」));那麼會是,我想。但是,如何從'li'中選擇'文本'? – Faili 2010-10-04 10:25:13

0

是這樣的:

(在[電話簿])姓名,號碼是新的入門

你通緝?

$("div p:contains('In [')").parent().text()