获取html元素的onclick事件的data-*属性

zka*_*oca 50 html javascript jquery

<a id="option1" data-id="10" data-option="21" href="#" onclick="goDoSomething(?,?);">
       Click to do something
</a>
Run Code Online (Sandbox Code Playgroud)

我想得到我试图使用引用的函数内的data-iddata-option值:但它没有用.goDoSomething(10, 21)thisthis.data['id']

我怎样才能做到这一点?

Kri*_*h R 73

你可以$(identifier).data('id')使用jquery实现这一点,

    <script type="text/javascript">

        function goDoSomething(identifier){     
            alert("data-id:"+$(identifier).data('id')+", data-option:"+$(identifier).data('option'));               
        }

    </script>

    <a id="option1" 
       data-id="10" 
       data-option="21" 
       href="#" 
       onclick="goDoSomething(this);">
           Click to do something
    </a>
Run Code Online (Sandbox Code Playgroud)

javascript:你可以使用getAttribute("attributename")如果想使用javascript标签,

    <script type="text/javascript">

        function goDoSomething(d){
            alert(d.getAttribute("data-id"));
        }

    </script>

    <a id="option1" 
       data-id="10" 
       data-option="21" 
       href="#" 
       onclick="goDoSomething(this);">
           Click to do something
    </a>
Run Code Online (Sandbox Code Playgroud)

要么:

    <script type="text/javascript">

        function goDoSomething(data_id, data_option){       

            alert("data-id:"+data_id+", data-option:"+data_option);
        }

    </script>

    <a id="option1" 
       data-id="10" 
       data-option="21" 
       href="#" 
       onclick="goDoSomething(this.getAttribute('data-id'), this.getAttribute('data-option'));">
           Click to do something
    </a>
Run Code Online (Sandbox Code Playgroud)


CD.*_*D.. 27

像这样:

$(this).data('id');
$(this).data('option');
Run Code Online (Sandbox Code Playgroud)

工作示例:http://jsfiddle.net/zwHUc/


小智 5

我只是使用这个jQuery技巧:

$("a:focus").attr('data-id');
Run Code Online (Sandbox Code Playgroud)

它获取焦点a元素并从中获取data-id属性。


Was*_*han 5

检查数据属性是否存在,然后执行操作...

$('body').on('click', '.CLICK_BUTTON_CLASS', function (e) {
                        if(e.target.getAttribute('data-title')) {
                            var careerTitle = $(this).attr('data-title');
                            if (careerTitle.length > 0) $('.careerFormTitle').text(careerTitle);
                        }
                });
Run Code Online (Sandbox Code Playgroud)