首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery :visible找不到元素

jQuery :visible找不到元素
EN

Stack Overflow用户
提问于 2015-12-23 16:11:16
回答 1查看 51关注 0票数 3

我有一个页面,其中有一个具有特定屏幕大小的text input,它在其他屏幕大小下更改为一个select

挑战

我希望能够在不重复代码的情况下获得inputselectkeyupchange上的值,因此我给元素提供相同的ID,知道它们永远不会同时可见,并选择使用:例如,下面的#ID:visible -代码查找元素。

代码语言:javascript
运行
复制
$('#test:visible').on('keyup change', function(){
	alert($(this).val());
})
代码语言:javascript
运行
复制
<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可见选择器页面。和我做的事情似乎都是正确的,但是警报根本不起作用。

我是不是误解了这是怎么回事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-23 16:13:39

所以我给元素相同的ID,知道它们永远不会同时可见。

不幸的是,事情不是这样的。您不能在同一文档的范围内复制id属性,无论这些元素是否可见。您需要使用类将多个元素组合在一起:

代码语言:javascript
运行
复制
$('.test:visible').on('keyup change', function(){
    alert($(this).val());
})
代码语言:javascript
运行
复制
<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>

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34439642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档