2014-02-20 113 views
0

jQuery的

$("select[id^='_taskAssignedTo_']").each(function(id) { 
    if ($(this).val() == "1") { 
     $(this).next().find("select[id^='_taskStatus_']").prop("disabled", false); 
    } 
}); 

HTML

<td> 
    <select id="_taskAssignedTo_1"> <!-- options --> </select> 
<td> 
<td> 
    <select id="_taskStatus_1"> <!-- options --> </select> 
<td> 

我通过循环和寻找第一select因为它有我需要搜索的价值,我想使select在它旁边叫_taskStatus_1。有很多,所以重要的是我使用“开始”语法。选择下一个jQuery的选择

上面的代码不起作用。我不确定是否需要使用nextfind,其他或其他组合?

+1

这是更好地提供的jsfiddle链接或类似的 – Lab

+2

@ neo的问题是东西在所提供的代码非常清楚。 –

+2

理想情况下,当您想要将CSS钩子添加到多个元素时,请使用类而不是id。如果您还想根据需要将唯一标识符分配给具有该类的元素,请使用data-id或#prefix- {someid}。 –

回答

3

只要做到:

$(this).closest("td").next("td").find("select[id^='_taskStatus_']"); 

你必须先乘车返回到您td(最近) - 然后到下一个td(下) - 然后find你正在寻找的元素。

+0

这工作,将标记正确。谢谢.... – KickingLettuce

1

尝试:

$(this).parent().next().find("select[id^='_taskStatus_']").prop("disabled", false);