创建属性值数组,其中属性名称以特定字符串结尾
Create array of attribute values where attribute name ends with certain string
我正在尝试创建一个元素属性值数组,其中属性名称以字符串 "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()
创建一个 *toselect
值的数组,并根据正则表达式测试该值,如下所示:
var data = $('.someclass').data();
var values = $.map(data, function(value, key) {
if (/toselect$/i.test(key))
return value;
});
我正在尝试创建一个元素属性值数组,其中属性名称以字符串 "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()
创建一个 *toselect
值的数组,并根据正则表达式测试该值,如下所示:
var data = $('.someclass').data();
var values = $.map(data, function(value, key) {
if (/toselect$/i.test(key))
return value;
});