如何设置下拉菜单的值

时间:2014-06-06 05:53:11

标签: javascript jquery

我有一张桌子,每行都有一个复选框和下拉菜单。

这是一行

<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

这是我试过的两种方式

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

但没有效果。

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

您可以看到fiddle

3 个答案:

答案 0 :(得分:1)

你正在做的事情是超级复杂和脆弱的!

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

此外,您必须根据,呃,设置select的值,而不是显示文字。

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

你想在中找到相同的select,所以就这样做:

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

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

答案 1 :(得分:1)

试试这个:

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

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

以下是JSFiddle

答案 2 :(得分:1)

如果您希望在checkbox checked上完成此操作,可以试试这个..

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

<强> Fiddle