2014-06-06 86 views
0

我有一个表,每一行都有一个复选框和下拉菜单。如何设置下拉菜单的值

这是一个行

<tr> 
    <td><input id="checked1" type="checkbox" class="cd" value="1"></td> 
    <td><b>select</b></td> 
    <td> 
     <select name="questionType" id="questionType" class="qType QSelect"> 
     <option value="">--Select--</option> 
     <option value="1">text</option> 
     <option value="2">rate</option> 
     <option value="3">etc</option> 
     <option class="show-checkboxes" value="4">option</option> 
     </select> 
    </td> 

    <td><input type="hidden" id="optionInputa1"></td> 
</tr> 

我想设置的下拉通过使用jQuery作为选择显示text

这里有2种方法我试过

//$("#checked1").closest("input:select").val('text'); 
$('#checked1').parent().sibling().sibling().children().closest("input:select").val('text'); 

,但没有工作。

谁能告诉我这里有什么问题吗?

可以看到fiddle

+0

你想选择在复选框检查时下拉并且选择值应该等于ch eckbox的价值,是这个要求吗? –

回答

1

你在做什么是超级复杂和脆弱!

closest只向上遍历,并且该选择器永远不会匹配select,因为select不是input

此外,你必须设置一个select的值,基于呃,,而不是显示文本。

最后你的小提琴不起作用,因为没有桌子,而且<tr>从来没有进入DOM。

你想找到在相同select,所以才这样做:

$('#checked1').closest('tr').find('select').val('1'); 

更新小提琴:http://jsfiddle.net/E3q5x/3/

+0

非常感谢。 – SpringLearner

+0

这里是JSFiddle更新的工作代码:http://jsfiddle.net/E3q5x/10/ –

1

试试这个:

编辑:根据关于聊天的讨论,下拉值在页面加载时被选择,并且值等于复选框值。因此更新了jQuery和JSfiddle链接。

$(document).ready(function(){ 
    $('input[type=checkbox]').each(function(){ 
     $(this).closest('tr').find('select').val($(this).val()); 
    }); 
}); 

这里是JSFiddle

+0

我想使下拉菜单显示加载页面时的文本 – SpringLearner

+0

在$(文档)中调用jQuery代码。准备好(...'如回答 –

+0

eevee已经发布,他是第一个回答,所以我已经接受了他/她的回答。+ 1为您的答案 – SpringLearner

1

如果你希望它是在checkbox checked做,你可以尝试这个..

$("#checked1").click(function() { 
    $("#checked1:checked").parents('tr').find('select').val('1'); 
}); 

Fiddle

+0

感谢您的回答+1 – SpringLearner

+0

@JqueryLearner乐于助人 – Bhavik