我有以下ID的div:
<div id="text.header" class="countDiv"></div>
<div id="text.content" class="countDiv"></div> etc
我有两个数组。在第一个我有,array1 = [1,2],在另一个我存储所有div的ID使用以下代码段
$(".countDiv").each(function(i){
array2[i] = $(this).attr("id");
}
然后我使用.html()
使用以下内容将i
的值写入div的id:
for(var myCount = 0; myCount < array1.length; myCount++){
$("#" + array2[i]).html(array1[i]);
}
问题在于,对于所有情况都很好,但是当我在ID之间使用.
时,代码不起作用。控制台上没有显示错误。
例如:当我使用时,它运作良好,但是当我使用时,页面是空白的。代码不起作用。
我在这里做错了吗?任何帮助表示赞赏。
答案 0 :(得分:2)
如果您查看结果选择器字符串的外观,您将看到此行导致的问题:
$("#"+array2[i])
我们说id是text.header
。查看生成的选择器字符串变为什么:
$('#text.header')
此选择器将匹配ID为text
且类header
的元素。那不是你想要的。 jQuery解决方案是逃避点,但更好的方法是使用本机DOM方法并将其包装在jQuery对象中:
$(document.getElementById(array2[i]))
我没有在重复的问题中看到这种方法,所以我不妨在这里发布。
答案 1 :(得分:1)
您提到myCount
但没有使用它。
此外,jquery在.
中使用id
时会产生问题,因此请在此处使用javascript
selecting id
var array2=new Array();
var array1 = [1,2];
$(".countDiv").each(function(){
array2.push($(this).attr("id"));
});
for(i=0; i<array1.length; i++){
document.getElementById(array2[i]).innerHTML=(array1[i]);
}
答案 2 :(得分:0)
.
表示jQuery(和CSS)中的类选择器。考虑将其转义为\.
$("#" + array2[i].replace(".", "\\."))...
答案 3 :(得分:-1)
。没错。
''是CSS中的类路径分隔符,因此显然不能在类名中使用。
这就是设计(CSS)。