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

Create array of attribute values where attribute name ends with certain string

本文关键字:属性 字符串 结尾 数组 创建      更新时间:2023-09-26

我正在尝试创建一个元素属性值数组,其中属性名称以字符串"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>

因此数组"attrs"应包含{somevalue1, somevalue2, somevalue3}

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

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

从那里,您可以通过使用map()并根据Regex测试值来创建*toselect值的数组,如下所示:

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

小提琴示例