Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建属性值数组,其中属性名称以特定字符串结尾_Javascript_Jquery_Jquery Selectors_Attributes - Fatal编程技术网

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

Javascript 创建属性值数组,其中属性名称以特定字符串结尾,javascript,jquery,jquery-selectors,attributes,Javascript,Jquery,Jquery Selectors,Attributes,我试图创建一个元素属性值数组,其中属性名称以字符串toselect结尾。我在页面上有很多这样的元素,但是我只想要我点击的元素的值。我不知道jquery.attr函数是否接受任何通配符。我正在使用jquery,但我也会很高兴使用纯javascript anwser 我知道这样不行,但我需要类似的东西 var attrs[]=$this.attr'*toselect' html如下所示 <div class="someclass" data-firsttoselect="somevalue1"

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

您可能应该使用data-*属性,而不是您自己编造的无效属性?仅供参考,HTML是无效的。不能向元素添加非标准属性。尝试改用data-*属性。我会这样做,但我仍然不知道如何选择它们。没有内置的方法根据部分属性名称选择元素,您必须迭代和筛选,但角度完全依赖于非标准属性?@Alnitak确实如此。大多数渲染器都很宽松,可以让您不受影响,但HTML仍然无效。这里有一个关于这个主题的问题:在使用数据属性之前,使用非标准属性已经很普遍了。浏览器不会出错,只需忽略即可
var data = $('.someclass').data();
var values = $.map(data, function(value, key) {
    if (/toselect$/i.test(key))
        return value;
});