我有一个页面,其中有一个具有特定屏幕大小的text input
,它在其他屏幕大小下更改为一个select
。
挑战
我希望能够在不重复代码的情况下获得input
或select
在keyup
或change
上的值,因此我给元素提供相同的ID,知道它们永远不会同时可见,并选择使用:例如,下面的#ID:visible
-代码查找元素。
$('#test:visible').on('keyup change', function(){
alert($(this).val());
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div style="display: none">
<input id="test">
</div>
<select id="test">
<option value="10">10</option>
<option value="20">20</option>
</select>
问题
这根本行不通。我已经阅读了jQuery可见选择器页面。和我做的事情似乎都是正确的,但是警报根本不起作用。
我是不是误解了这是怎么回事?
发布于 2015-12-23 16:13:39
所以我给元素相同的ID,知道它们永远不会同时可见。
不幸的是,事情不是这样的。您不能在同一文档的范围内复制id
属性,无论这些元素是否可见。您需要使用类将多个元素组合在一起:
$('.test:visible').on('keyup change', function(){
alert($(this).val());
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div style="display: none">
<input class="test">
</div>
<select class="test">
<option value="10">10</option>
<option value="20">20</option>
</select>
https://stackoverflow.com/questions/34439642
复制相似问题