JQuery找到哪一个是可见的

时间:2011-04-07 18:20:57

标签: jquery jquery-selectors

<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()

控制

我是否使用JQuery找出哪一个是显示的那个并获得它的id。

谢谢!

4 个答案:

答案 0 :(得分: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') 

答案 1 :(得分: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');

答案 2 :(得分:-1)

$('option:visible');

将匹配所有未隐藏的选项元素,隐藏我的意思是显示:无,我不认为可见性:隐藏计数!你必须在“选择器”部分

下的jQuery文档中仔细检查这一点

答案 3 :(得分:-1)

这里你去:

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

我建议在每个元素中添加一个类来轻松选择它们:

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