2017-06-01 43 views
0

我有由行的像這樣的表:Jquery找到最接近的ID和Select Value?

<tr class='child1'> 
    <td colspan="2"><img class="parent" src="show.gif"> 
     <select name="option" class="option" id="0"> 
      <option value="0">ZERO</option> 
      <option value="1">ONE</option> 
      <option value="2">TWO</option> 
      <option value="3">Three</option> 
     </select> 
    </td> 
    </td><td> 
    </td><td> 
    </td><td> 
</tr> 

<tr class='child1'> 
    <td colspan="2"><img class="parent" src="show.gif"> 
     <select name="option" class="option" id="1"> 
      <option value="0">ZERO</option> 
      <option value="1">ONE</option> 
      <option value="2">TWO</option> 
      <option value="3">Three</option> 
     </select> 
    </td> 
    </td><td> 
    </td><td> 
    </td><td> 
</tr> 

我使用jQuery,試圖找到選擇的ID,併爲每個類.child + id選擇的值。

$('.child' + id).each(function(i, obj) { 
    // How do I get the Select ID and Selected Value ? 
}); 

我不知道如何獲得每個匹配class1

有人能告訴我如何做到這一點的條目選擇ID和選定的值?

謝謝

UPDATE。 添加console.log(這個)顯示正確的行,我試過了: test = $(this).next("select").val();但是,返回undefined。

回答

3

幾件事情裏面:我定你無與倫比的TD的,我添加了一個按鈕,以證明代碼工作正常,和我刪除了獨特的子類因爲它似乎有點錯誤的(你可以添加它,如果你想要的,它抓住了選擇的ID和值。

$("button").click(function() { 
 
    
 
    $('.child').each(function(i, obj) { 
 
    console.log("Index: " + i) 
 
    value = $(this).find(".option").val() 
 
    selectedId = $(this).find(".option").attr("id") 
 
    console.log("Has the value " + value + " and the selectedId of " + selectedId); 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
<tr class='child'> 
 
    <td colspan="2"><img class="parent" src="show.gif"> 
 
     <select name="option" class="option" id="0"> 
 
      <option value="0">ZERO</option> 
 
      <option value="1">ONE</option> 
 
      <option value="2">TWO</option> 
 
      <option value="3">Three</option> 
 
     </select> 
 
    </td><td> 
 
    </td><td> 
 
    </td><td> 
 
</tr> 
 

 
<tr class='child'> 
 
    <td colspan="2"><img class="parent" src="show.gif"> 
 
     <select name="option" class="option" id="1"> 
 
      <option value="0">ZERO</option> 
 
      <option value="1">ONE</option> 
 
      <option value="2">TWO</option> 
 
      <option value="3">Three</option> 
 
     </select> 
 
    </td><td> 
 
    </td><td> 
 
    </td><td> 
 
</tr> 
 
</table> 
 
<button>Test results</button>

+0

'td'是一個複製和粘貼錯字。真正的代碼是正確的解決方法。 – Tom

+0

完美 - 謝謝,因爲我需要:) – Tom

+0

不客氣,如果你可以標記爲解決方案,它會幫助很多。 – Neil

1
$('.child' + id).each(function(i, obj) { 
    var selectID = $(this).find("select").attr("id"); 
    var selectValue = $(this).find("select").val(); 
}); 

只有當你有選擇你的childN

+0

您的HTML錯誤,您關閉並打開td,而不是打開並關閉td – Kashkain

+0

對不起,這是一個複製和粘貼錯字。真正的代碼是正確的解決方法。 – Tom