简体   繁体   English

Javascript:在点击事件上获取数据属性

[英]Javascript: getting data-attr on click event

i am trying to alert data-attr value on click event like this 我试图像这样单击事件来提醒data-attr

<div class="col-md-2 col-xs-2" onclick="changeImage(event)">
    <img src="img/img1.jpg" data-attr="img1.jpg">
    <img src="img/img2.jpg"  data-attr="img2.jpg">
</div> 

<script type="text/javascript">
        function changeImage(event){
                    var target= event.target;                    
                    alert(target.data-attr);
        }
</script>

here if i target src of image that will alert but data-attr wont how can i do this pleas help 在这里,如果我的目标图像的src将发出警报,但data-attr无法执行,请问如何做

You should use the dataset property to retrieve data-* attributes: 您应该使用dataset属性来检索data-*属性:

function changeImage(event) {
    var target = event.target;
    alert(target.dataset.attr);
}

Working example 工作实例

Also, seeing as you tagged this question with jQuery, here's a jQuery implementation without the ugly onclick attribute: 另外,看到您用jQuery标记了这个问题后,这是一个没有丑陋的onclick属性的jQuery实现:

<div class="col-md-2 col-xs-2">
    <img src="img/img1.jpg" data-attr="img1.jpg">
    <img src="img/img2.jpg" data-attr="img2.jpg">
</div>
$(function() {
    $('div.col-md-2').on('click', 'img', function() {
        alert($(this).data('attr'))
    });
});

Example fiddle 小提琴的例子

Use getAttribute() 使用getAttribute()

function changeImage(event){
      var target= event.target;                    
      console.log( target.getAttribute('data-attr') );
}

Use ELEMENT.getAttribute("ATTRIBUTE") to get any Attribute on a Element: 使用ELEMENT.getAttribute("ATTRIBUTE")获取元素上的任何属性:

And in case of the data- Attribute you can also use ELEMENT.dataset.ATTRIBUTE : 并且在data- Attribute的情况下,您还可以使用ELEMENT.dataset.ATTRIBUTE

 <div class="col-md-2 col-xs-2" onclick="changeImage(event)"> <img src="img/img1.jpg" data-attr="img1.jpg"> <img src="img/img2.jpg" data-attr="img2.jpg"> </div> <script type="text/javascript"> function changeImage(event) { var target = event.target; alert(target.getAttribute("data-attr")); alert(target.dataset.attr); } </script> 

Try using getAttribute() function. 尝试使用getAttribute()函数。 Following code depicst the same 以下代码描述相同

 function changeImage(event) { var target = event.target; console.log(target.getAttribute("data-attr")); } 
 <div class="col-md-2 col-xs-2" onclick="changeImage(event)"> <img src="img/img1.jpg" data-attr="img1.jpg"> <img src="img/img2.jpg" data-attr="img2.jpg"> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM