从数据attr获取具有相同前缀的所有键/值对

时间:2013-04-26 07:23:03

标签: javascript jquery custom-data-attribute

我正在一个平台上工作,希望统一并标准化整个平台的某些行为... html元素中的data-attribute将发挥重要作用......

所以我想说我有一个按钮:

<a href="..." class="btn" data-tip="My button" data-modal_tile="Foo" data-templade_data_id="14" data-templade_data_action="reset">...</a>

现在,我的Javascripts处理了这个按钮的行为。

我想要设置一个template_data数组,它会给我来自data-属性的所有键/值对具有相同的前缀(data-template_data _)... 所以在我的例子中我会得到:

{
    id: "14",
    action : "reset"
}

最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

试试这个

var array = [];
$( ".btn" ).each( function(){
    var obj = {};
    $.each(this.attributes, function() 
    {
        if(this.name.indexOf( "data-templade_data_" ) == 0 ) 
        {
            var key = this.name.replace( "data-templade_data_", "" );
            obj[ key ] = this.value;
        }
    });
    array.push( obj );
} );

答案 1 :(得分:1)

这对我有用

public static class MyRadioButton extends RadioButton {
    public MyRadioButton() {
    }

    public MyRadioButton(String text) {
        super(text);
    }
    @Override
    public void fire() {
        if (!isDisabled()) {
            setSelected(!isSelected());
            fireEvent(new ActionEvent());
        }
    }
}

});