创建属性值数组,其中属性名称以某个字符串结尾

时间:2015-03-19 10:41:38

标签: javascript jquery jquery-selectors attributes

我试图创建一个元素属性值数组,其中属性名称以字符串" toselect"结尾。我在页面上有很多这些元素,但我只想要点击的元素的值。我不知道jquery .attr()函数是否接受任何外卡字符。我使用jquery但我也会对纯粹的javascript anwser感到高兴

我知道这不起作用,但我需要类似的东西。

var attrs[] = $(this).attr('*toselect');

html看起来像这样

<div class="someclass" data-firsttoselect="somevalue1" data-secondtoselect="somevalue2" data-thirdtoselect="somevalue3"></div>

所以数组&#39; attrs&#39;应包含{somevalue1, somevalue2, somevalue3}

1 个答案:

答案 0 :(得分:0)

首先,HTML无效。您不能在不使页面无效的情况下向元素添加非标准属性,这可能会导致UI和JS问题。请尝试使用data-*属性:

<div class="someclass" data-firsttoselect="somevalue1" data-secondtoselect="somevalue2" data-thirdtoselect="somevalue3"></div>

从那里你可以使用*toselect创建一个map()值的数组,并针对正则表达式测试值,如下所示:

var data = $('.someclass').data();
var values = $.map(data, function(value, key) {
    if (/toselect$/i.test(key))
        return value;
});

Example fiddle