我需要为所有<span>
标记提供其内容与array1相匹配的ID。
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或数组都不熟悉。 感谢任何帮助,谢谢。
答案 0 :(得分:0)
试试这个,
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]);
})
}
答案 1 :(得分:0)
这似乎是一件奇怪的事情,你应该重新考虑它并找到一个更好的方法,但这会做你想要的:
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]);
}
答案 2 :(得分:0)
选中此jsfiddle
$(function(){
var arr = $('#spans').find('span');
for (var i = 0; i < arr.length; i++) {
$(arr[i]).attr('id',i);
}
})
答案 3 :(得分:0)
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]);
}
});
演示:: jsFiddle
答案 4 :(得分:0)
首先获取标记名为span
的所有元素:
var s = document.getElementsByTagName('span');
var len = s.length;
现在,在for循环中,为每个元素分配ID:
for(var i=0; i<len; i++) {
var inner = s[i].innerHTML;
s[i].id = inner;
这将为所有跨度提供相应的ID。
答案 5 :(得分:-1)
使用jquery你可以这样做:
for (var i = 0; i < array1.length; i++) {
$(this).attr("id",array1[i]);
}
如果跨度已经填充了HTML(不确定它们将如何,只是说)
$( "span" ).each(function(){
$(this).attr("id") = $(this).html();
})