从当前元素之外的所有相同元素中删除数据属性

时间:2013-06-05 19:00:52

标签: javascript jquery custom-data-attribute

我有以下声明

            if(play == '4'){
                $(this).removeAttr('data-playa');
                $(this).attr("data-pausea",'5');
            }

基本上它将data-playa="4"替换为当前元素的data-pausea="5"$(this)使用文章播放类$(article-play)对当前锚标记进行裁判。我需要以某种方式编辑此代码,以便将以下内容应用于页面上的所有$(article-play)元素,但当前的元素除外:

                $(article-play).removeAttr('data-pausea');
                $(article-play).attr("data-playa",'4');

所以它在逻辑上就像这样

        if(play == '4'){
            // Apply this to current .article-play
            $(this).removeAttr('data-playa');
            $(this).attr("data-pausea",'5');
        // Apply this to all other .article-play on a page
        $(article-play).removeAttr('data-pausea');
        $(article-play).attr("data-playa",'4');
        }

2 个答案:

答案 0 :(得分:3)

最简单的方法:

$(this).removeAttr('data-playa').attr("data-pausea",'5');
$(article-play).not(this).removeAttr('data-pausea').attr("data-playa",'4');

如果您改为使用data()方法:

$(this).removeData('playa').data("pausea",'5');
$(article-play).not(this).removeData('pausea').data("playa",'4');

如果其他元素是兄弟姐妹,那么:

$(this).removeData('playa').data("pausea",'5').siblings()
    .removeData('pausea').data("playa",'4');

答案 1 :(得分:0)

$(article-play).not(this).removeAttr('data-pausea');