jQuery 和单击元素中的第一个元素
jQuery and first element in the clicked element
我有 2 个div 元素,如果我单击第一个div,那么应该显示单击的div 内的另一个div,但我无法理解它的工作原理,我的 jquery 代码是这样的:
jQuery('.infobutton').click(function(){
var clickedID = jQuery(this).attr('id');
jQuery(clickedID).children('div').toggle();
});
<div class="infobutton" id="infobtn1">
<div class="content">some content</div>
</div>
我每次都得到正确的id,我也尝试了.first()
,.parent()
,.children('.content')
用jQuery可以做到这一点吗?
假设你有这样的 HTML:
<div id="container" class="infobutton">
Some content
<div>Some other content</div>
</div>
现在让我们来看看你的Javascript:
jQuery('.infobutton').click(function(){
查找具有类infobutton
的元素并分配click
处理程序。这工作正常。
var clickedID = jQuery(this).attr('id');
将该元素的id
放在变量clickedID
中。clickedID
的值现在container
。
jQuery(clickedID).children('div').toggle();
在 clickedID
上运行 jQuery 选择器。在这里,我们遇到了问题。这可以归结为jQuery('container')
.这将查找具有标记名称的元素 container
,而不是 ID container
的元素。
事实上,所有这些的解决方案是根本不使用 ID。相反,您可以使用 this
构建 jQuery 对象,这是对单击元素的引用:
jQuery('.infobutton').click(function(){
jQuery(this).children('div').toggle();
});
在事件处理程序中,this
将引用处理程序附加到的元素
jQuery('.infobutton').click(function(){
jQuery(this).children('.content').toggle();
});
演示:小提琴
使用这个
jQuery('.infobutton').click(function(){
jQuery(this).children('.content').toggle();
});
this
是指事件中的当前元素。
您的代码将作为
使用jQuery('#'+clickedID)
而不是jQuery(clickedID)
相关文章:
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- Javascript:表单验证getElementById仅返回第一个id元素
- 使用jquery选择元素附近的第一个h2
- 在jQuery中,如何测试一个元素是否是同一类的多个元素中的第一个
- 只获取HTML元素的第一个类
- 如果第二个 html 元素位于第一个 html 元素上方,如何移动该元素
- 使用 querySelectorAll 获取具有该类名的所有元素,而不仅仅是第一个
- 在 javascript 中创建第二个 html 元素会删除第一个
- 如何停止在第一次按下回车键时触发第一个 onclick 事件的元素
- 获取列表中的第一个 DOM 元素
- 第一个jQuery插件-如何以正确的方式保存关联元素数据
- 如何使用Jquery选择第一个td元素及其文本
- 如何获取在视口中可见的第一个DOM元素
- 不要使用jquery选择第一个li元素
- 获取href不仅是第一个,而且是所有匹配的元素
- 如何编写一个选择器来查找第一个“输入”.在类为“x”的元素之后
- 向元素添加另一个类,但作为第一个类
- jQuery + CSS:如何检测第一个“移出”将光标移出元素
- 我如何从最接近的'tr'的第n个元素获得一个值
- Jquery删除所有的第一个span元素