2011-04-07 59 views
4
<select id="milesAway"> 
    <option id="5" value="5">5 miles</option> 
    <option id="10" value="10">10 miles</option> 
    <option id="25" value="25">25 miles</option> 
    <option id="50 value="50">50 miles</option> 
    <option id="100" value="100">100 miles</option> 
    <option id="250" value="250">250 miles</option> 
    <option id="500" value="500">500 miles</option> 
</select> 
<input type="text" id="zipCode" /> 
<input type="text" id="cityState" class="cityState" /> 

因此,在任何時間點,這3個可用輸入中只有一個顯示。他們都是由.show().hide().hide()JQuery找到哪一個是可見的

我使用JQuery來找出哪一個是顯示,並得到它的ID。

謝謝!

+0

請記住,'.show'和'.hide'在Internet Explorer(*所有版本*)中不起作用。 – 2011-04-07 18:31:14

回答

3

你可以做

$(':input:visible') //This will selects all inputs on the page. You can narrow this down by specifying an ID that wraps the input you are looking or. 

你也可以檢查,如果輸入的是可見的做

$('#cityState').is(':visible') 
+0

雖然不會在頁面上的每個輸入上起作用嗎?我希望它被限制在這三件事情上。 – Scott 2011-04-07 18:23:25

+0

有沒有什麼辦法可以使用這3個ID來限制它只有這3件事/ – Scott 2011-04-07 18:25:31

+0

@scott是的。我的答案就是這樣。您可以將ID用逗號分隔。在我的答案我已經用逗號分隔的元素,只是由ID的 – Hussein 2011-04-07 18:26:42

-1

$('option:visible');

將匹配未隱藏所有的選項元素,通過隱藏我的意思顯示:無,我不認爲知名度:隱藏計數!你將不得不加倍jQuery的文檔中選中這個「選擇器」部分

+0

OP不需要'選項'。 – kapa 2011-04-07 18:43:11

-1

這裏亞去下:

$('select:not(:visible)'); 

我建議增加一類到每個元素的輕鬆選擇他們:

$('.toggleInputs:not(:visible)'); 
+0

打開此頁面上的開發者控制檯並運行: $('div:not(:visible)'); – 2011-04-07 18:26:26

+0

toggleInputs是類名嗎? – Scott 2011-04-07 18:26:45

0

http://jsfiddle.net/RSGrW/1/

閱讀評論後

首先更新:

var id = $("#milesAway:visible option:selected, #zipCode:visible, #cityState:visible").attr('id'); 

因爲我看見你把IDS的選項裏面,我想你會喜歡的返回。這是僅用於輸入或選擇ID的替代方法。

var id = $("#milesAway:visible, #zipCode:visible, #cityState:visible").attr('id'); 
相關問題