使用jQuery.attr()方法获取元素属性
Getting element attribute with jQuery .attr() method
我使用jQuery.attr()方法获取元素属性的值,在本例中为id,并将其存储到字符串中。然后,我将字符串中的"info"替换为"article",以隐藏和显示页面中的元素。
我的HTML代码如下:
<div id="navigator">
<div id="info_01"><a href="#">Lorem Ipsum</a>
<div id="info_02"><a href="#">Lorem Ipsum</a></div>
</div>
<div id="info_03"><a href="#">Lorem Ipsum</a></div>
</div>
jQuery代码:
$('#navigator>div, #navigator>div>div').click(function(){
var variable=$(this).attr('id');
var variable2=(variable.replace("info", "article"));
console.log(variable2);
$("#another_div").hide();
$("#"+variable2).show();
});
我正在将日志输出到控制台,当我单击#navigator
中的父div(如#info_01
和#info_03
)时,它只打印我单击的div的id,但当我单击#navigator
中的子元素(如#info_02
)时,会打印两行:
article_02
article_01
正如你所看到的,第一个来自我点击的第一个div,但由于我也在点击它的父级,它会输出父级的id。
我只需要输出一个id,即我点击的元素中的id,而不需要输出其父元素的id。
我该怎么做?
使用.stopPropagation()
。这可以防止事件在DOM树中冒泡,防止任何父处理程序收到事件通知。在上阅读更多信息https://api.jquery.com/event.stoppropagation
$('#navigator>div, #navigator>div>div').click(function(e){
var variable=$(this).attr('id');
var variable2=(variable.replace("info", "article"));
console.log(variable2);
$("#another_div").hide();
$("#"+variable2).show();
// propagate
e.stopPropagation();
});
相关文章:
- 如何在jQuery中获取元素的形式
- 通过id和class属性获取元素
- Javascript:Can't使用getElementById获取元素
- 使用jquery.html()获取元素本身的html
- 如何从iframe内部获取元素
- Javascript函数获取元素内容
- 使用模板后,使用Angular获取元素属性值
- 获取元素类名的部分
- 从JSON.parse获取元素
- 获取元素内部的缩写
- 在不引用文档的情况下使用AngularJS获取元素
- 如何获取元素's的title属性
- 使用Javascript,获取元素的方法是什么,基于打开和关闭标记之间的文本
- Javascript获取元素背景图像,但消除了“;url()”;
- Javascript:按类获取元素,但跳过某个类
- 当display:none时,getElementById()无法获取元素
- 我的ID获取元素不起作用
- 如何获取元素:使用javascript和CORS悬停背景
- 能够获取元素长度,但不能获取内部 HTML
- 如何使用jQuery在模板kendo UI中获取元素类