2014-06-06 107 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