2010-08-04 101 views
0

面對jQuery選擇器的一些問題。jquery select元素

我的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> 

有n個這樣的問題。

我想突出顯示包含每個問題的第3個單選按鈕的<p>。例如,

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"); 
+2

看起來您的標記中可能有重複的ID,根據規範它是* invalid *。 – karim79 2010-08-04 18:26:40

+0

嘗試在編輯模式下使用'代碼示例'按鈕(帶有零和1的那個)。它比'<'和'>' – 2010-08-04 18:30:22

+0

@ karim79更容易 - 不僅僅是可能,'radio'元素都有ID選項。我同意其他人(如「選擇」)也可能。 – user113716 2010-08-04 18:30:59

回答

1

我想強調每個 問題<p>含 第三單選按鈕。

使用開始^選擇與nth-child這樣的:

$('p[id^="question"]:nth-child(3)').addClass('correct'); 

什麼^="question"所做的是它選擇的所有段落開始在他們的IDS question文本,然後nth-child(3)用於選擇第三段。

更多信息:

1

如果你的第三個答案永遠是正確的,你可能會選擇這樣的事情,而不是:

<p class="first">Blah blah</p> 
<p class="second">Blah blah</p> 
<p class="third">Blah blah</p> 

然後簡單:

$("p.third").addClass("correct"); 

這應該希望引誘你得到擺脫那些僞裝身份證。

0

是否可以在每個問題的第三個選項中添加一個類?

1

我假設你想要這個工作,如果你有很多div在他們的答案?用DivChoices裝飾每個這樣的div,然後:

$(".DivChoices").each(function (index, item) { $("p", item).last().addClass('correct'); });