2010-10-04 39 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()
相关问题