2014-01-24 80 views
0

不能捕捉動態的ID,下面的代碼說明你所有捕捉動態ID從jQuery的

HTML

<select id="dropDown" class="dropDown"> 
       <option value="Red Car">Car</option> 
       <option value="Bus">Bus</option> 
</select> 

<div id="Red Car"><div/> 
<div id="Bus"><div/> 

jQuery的

$("#dropDown").click(function() { 
    var selectedOption = $('#dropDown').find('option:selected').text(); 
    $("#" + selectedOption).css({ "display": "none" });   
}); 

任何股利是沒有得到的應用(顯示:無)!

+0

啊文本。「改變「而不是」點擊「工作正常,但如果'身份證'我然後呢?前 - 「紅車」而不是「車」..那麼情況會是怎樣? – Faizan

+0

還是三個,還是多個? – Faizan

回答

2

嘗試:

$(document).on('change', '#dropDown', function(){ 

    $('#' + $('#dropDown').val()).hide(); 

}); 
+0

如果空間在未知的地方,Ex-「嘿!我有一輛藍色的車」那麼說什麼? – Faizan

+0

此方法採用選擇框中的「值」值,而不是文本。例如:''。 ID屬性通常不應該有空格。所以在上面的例子中,如果選擇'Blue Car',函數將從option元素中檢索value屬性,它是'blue_car' –

+0

好的,謝謝澄清.. :) – Faizan

2

http://jsfiddle.net/N48hf/

使用change(),而不是click()

$("#dropDown").change(function() { 
    var selectedOption = $('#dropDown').find('option:selected').text(); 
    $("#" + selectedOption).hide();   
}); 

編輯:根據更新的問題

你的IDS有空格,所以,使用選擇這樣$("[id='ID WITH SPACES']"

http://jsfiddle.net/N48hf/3/

$("#dropDown").change(function() { 
    var selectedOption = $('#dropDown').val(); 
    $('div').show(); 
    $("[id='" + selectedOption +"']").hide();   
}); 
+0

是的..這是工作,但如果'身份證'是兩個字,那麼?查看問題 – Faizan

+0

@Faizan - 查看我更新的答案。 – Krishna

+0

是的,這也是工作,但如果空間穿孔的方式,在未知的地方和未知的次數.. Ex-「嘿!我有一輛藍色的車」那麼說什麼? – Faizan

0

使用change工作EXAMPLE

$("#dropDown").on("change", function() { 
    var selectedOption = $(this).find('option:selected').text(); 
    $("#" + selectedOption).css({ "display": "none" });   
}); 
0

您也可以使用.VAL(),而不是像this fiddle.

$("#dropDown").on('change', function() { 
    $("#" + $('#dropDown').val()).css({ "display": "none" });   
});