使用jQuery查找特定元素

Ror*_*ley 7 html javascript jquery

我有以下标记.

<h6>Brand</h6>

<ul>
    <li>Orange</li>
    <li>Black</li>
    <li>Green</li>
</ul>

<h6>Colour</h6>

<ul>
    <li>Green</li>
    <li>Blue</li>
    <li>Black</li>
    <li>Orange</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我无法更改或物理添加到此标记中,因此尝试使用jQuery进行操作.

我想从中实现的是能够将单词更改BlackPurple.但只有包含"颜色" Black后出现的单词H6

到目前为止我有这个:

$("h6:contains('Colour'):.jqueryCheck:contains('Black')").html("Purple");
Run Code Online (Sandbox Code Playgroud)

然而,这不起作用......为什么不呢?

Roc*_*mat 13

$("h6:contains('Colour')").next('ul').children("li:contains('Black')").html("Purple");
Run Code Online (Sandbox Code Playgroud)

或全部作为一个选择器字符串:

$("h6:contains('Colour') + ul li:contains('Black')").html("Purple");
Run Code Online (Sandbox Code Playgroud)


Raf*_*fay 6

尝试使用相邻的选择器:

$("h6:contains('Colour')+ ul li:contains('Black')").text('Purple');
Run Code Online (Sandbox Code Playgroud)

看这个DEMO.

  • 这将改变两个`li',他只想要`<h6> Color </ h6>`之后的那个. (4认同)

jfr*_*d00 6

你可以使用这样的东西:

$("h6:contains('Colour')").next().find("li:contains('Black')").text('Purple');?
Run Code Online (Sandbox Code Playgroud)

这会找到<h6>包含的相应内容"Colour",然后前进到下一个兄弟(这是<ul>标记,然后在其中<ul>,它会找到<li>包含"Black"并更改该文本的内容)"Purple".

你可以在这里看到它的工作:http://jsfiddle.net/jfriend00/rdSzC/