面对jQuery选择器的一些问题。
我的HTML就像:
<form method="" action="">
<p id="question_1">
<h1 id="question">1. A Question</h1>
<div id="choices">
<p id="option1"><input type="radio" id="option" name="q_1" value="1" />A</p>
<p id="option2"><input type="radio" id="option" name="q_2" value="2" />B</p>
<p id="option3"><input type="radio" id="option" name="q_3" value="3" />C</p>
</div>
</p>
.
.
.
</form>
有这样的问题。
我想突出显示&lt; p&gt;包含每个问题的第3个单选按钮。例如,
p#question_1 > p#option3
p#question_2 > p#option3
p#question_3 > p#option3
怎么做?
我正在尝试这样的事情,没有任何成功:
$("form p#question_" + i).filter("p:eq(3)").addClass("correct");
答案 0 :(得分:1)
我想突出显示
<p>
包含的内容 每个的第3个单选按钮 问题
使用^
选择器与nth-child
一起使用,如下所示:
$('p[id^="question"]:nth-child(3)').addClass('correct');
^="question"
所做的是选择所有以question
文字开头的段落,然后nth-child(3)
用于选择第三段。
更多信息:
答案 1 :(得分:1)
如果你的第三个答案总是正确的,你可能会选择这样的话:
<p class="first">Blah blah</p>
<p class="second">Blah blah</p>
<p class="third">Blah blah</p>
然后简单地说:
$("p.third").addClass("correct");
这应该会诱使你摆脱那些欺骗ID。
答案 2 :(得分:1)
如果你有很多div的答案,我认为你想要这个吗?用DivChoices装饰每个这样的div,然后:
$(".DivChoices").each(function (index, item) { $("p", item).last().addClass('correct'); });
答案 3 :(得分:0)
有很多方法可以做到这一点,这是一个很好的jQuery选择器refcard,将来对你非常有用。
答案 4 :(得分:0)
是否可以为每个问题的第三个选项添加一个类?