如果child:包含x,则jquery前置为parent

时间:2012-09-02 22:18:04

标签: jquery jquery-selectors conditional parent-child

如果孩子包含单词“Group”,我想在其父级之前添加一些内容。如何将其设置为有条件的?

$("#breadcrumbs ul li:nth-child(4):contains('Group')").css("display","block");
$("#breadcrumbs").prepend("<p>relevant note about Groups</p>");

<nav id="breadcrumbs" role="navigation">
<ul>
<li>Home</li>
<li>Section</li>
<li>People</li>
<li>Group 1</li>
</ul>
</nav>

fiddle

4 个答案:

答案 0 :(得分:4)

这是您要找的内容:http://jsfiddle.net/NLfmU/1/ http://jsfiddle.net/anWRa/

使用.parent api前置到当前孩子的父母

希望它符合需要:),如果我遗漏了任何东西,请告诉我们!

http://jsfiddle.net/NLfmU/

<强>代码

$("#breadcrumbs ul li:nth-child(4):contains('Group')").css("display","block").parent().prepend("<p>relevant note about Groups</p>");
​

答案 1 :(得分:4)

试试这个:

var $elem = $("#breadcrumbs ul li:contains('Group')");
if ($elem.length) {
    $elem.css('display', 'block').parent().prepend("<p>relevant note about Groups</p>")
}   

http://jsfiddle.net/FqzGs/5/

答案 2 :(得分:4)

我建议使用不同的方法:

$('ul li:eq(3):contains("group")').closest('nav')
    .css('display','block')
    .prepend('<p>relevant note about Groups</p>');

这不是明确有条件的,但需要存在包含“group”一词的li才能完成任何操作。

答案 3 :(得分:2)

你太近了! append是你所追求的,而不是prepend

Prepend将在您选择之前提供信息,而append将在之后放置信息。

我猜你想把它放在符合你要求的那个之后,而不是在所有的清单之前?如果是这样,请查看jsfiddle:)。

我为您创建了jsfiddle,告诉您如何操作。

<强>代码

$("#breadcrumbs ul li:nth-child(4):contains('Group')").css("display","block")
   .append("<p>relevant note about Groups</p>");