Javascript 为所有元素提供一个数组中匹配内容的ID

Javascript 为所有元素提供一个数组中匹配内容的ID,javascript,jquery,arrays,Javascript,Jquery,Arrays,我需要为所有标签提供一个id,标识其内容与array1匹配的内容 array1 = ["155","80","200","123"]; <span>155</span> <span>80</span> <span>200</span> <span>123</span> 最终结果是: <span id="155">155</span> <span id="80">

我需要为所有标签提供一个id,标识其内容与array1匹配的内容

array1 = ["155","80","200","123"];

<span>155</span>
<span>80</span>
<span>200</span>
<span>123</span>
最终结果是:

<span id="155">155</span>
<span id="80">80</span>
<span id="200">200</span>
<span id="123">123</span>
这里是我能收集到的最好的信息:

var arr = $('span:contains(array1[i])');
for (var i = 0; i < arr.length; i++) {
    arr[i].id = i;
}
我既不精通JavaScript,也不精通数组。
非常感谢您的帮助。

使用jquery,您可以做到以下几点:

for (var i = 0; i < array1.length; i++) {
    $(this).attr("id",array1[i]);    
}
试试这个

array1 = ["155","80","200","123"];

for(var i = 0;i < array1.length; i++) {
    $("span:contains("+ array1[i] +")").each(function(ind, val){
        if($(val).html() == array1[i])
            $(val).attr("id", array1[i]);
    })
}

这似乎是一件奇怪的事情,您可能应该重新思考,并找到更好的方法,但这将满足您的需求:

array1 = ["155","80","200","123"];

for (var i = 0; i < array1.length; i++) {
    var arr = $('span:contains(' + array1[i] + ')').first();
    console.log(arr);
    arr.attr("id",array1[i]);
}
检查这个

你可以做:

var array1 = ["155","80","200","123"];

$("span").filter(function() { 
    var idx = $.inArray( $.trim($(this).text()), array1);
    if( idx > -1 ) {
        return $(this).attr("id", array1[idx]);
    }
});

演示::

首先获取标记名为span的所有元素:

现在,在for循环中,为每个元素指定ID:

for(var i=0; i<len; i++) {
    var inner = s[i].innerHTML;
    s[i].id = inner;

这将为所有跨度提供相应的ID。

不要这样做!您已经有了对这些数组元素的引用。为什么要查询表示层中的数据?这些项目最初是如何进入HTML的?对我来说似乎很荒谬。请解释您试图实现的最终目的,以及如何首先获得数组和生成跨距。跨距中的内容由表单生成。我使用.innerHTML将它们放入一个数组中。然而,我现在意识到有可能出现重复的数字。幸运的是,将数字放入数组的顺序将始终与其索引号相对应。因此,我将使用索引作为ID。为这些跨距指定ID的目的是,我可以将内容链接到另一个生成表单上的另一个输入框。之所以使用这种卷积编码,是因为我无法控制链接在一起的两个表单上生成的内容。这里我不会使用每一个表单。如果选择器返回多个结果,您真的不应该将所有这些元素的ID设置为相同的。@MattBurland我对您的答案发表了评论。如果有那样的情况呢。它不会设置所有匹配选择器的id。我已经检查了完全相同的内容。任何包含类似内容的跨度都会打破这一点code@RashminJaviya:这就是为什么一开始就不是个好主意。但是如果你必须的话。并确信不会有任何其他流氓在四处游荡。
var array1 = ["155","80","200","123"];

$("span").filter(function() { 
    var idx = $.inArray( $.trim($(this).text()), array1);
    if( idx > -1 ) {
        return $(this).attr("id", array1[idx]);
    }
});
var s = document.getElementsByTagName('span');
var len = s.length;
for(var i=0; i<len; i++) {
    var inner = s[i].innerHTML;
    s[i].id = inner;