包含字符“quot;的Div id&引用;jquery未选择

包含字符“quot;的Div id&引用;jquery未选择,jquery,Jquery,我有如下ID的div: <div id="text.header" class="countDiv"></div> <div id="text.content" class="countDiv"></div> etc 然后我使用.html()将I的值写入div的id,方法是: for(var myCount = 0; myCount < array1.length; myCount++){ $("#" + array2[i]).ht

我有如下ID的div:

<div id="text.header" class="countDiv"></div>
<div id="text.content" class="countDiv"></div> etc
然后我使用
.html()
I
的值写入div的id,方法是:

for(var myCount = 0; myCount < array1.length; myCount++){
    $("#" + array2[i]).html(array1[i]);
}
for(var myCount=0;myCount
问题是,在所有情况下都可以,但当我在ID之间使用
时,代码不起作用。控制台上未显示任何错误

当我使用时,它工作得很好,但当我使用时,页面是空白的。代码不起作用

我做错什么了吗?非常感谢您的帮助。

“.”是CSS中的类路径分隔符,因此显然不能在类名中使用


这是通过设计(CSS)。

在jQuery(和CSS)中,
表示类选择器。考虑将其转移到<代码> \<代码>

$("#" + array2[i].replace(".", "\\."))...

如果查看结果选择器字符串的外观,您将看到这一行导致的问题:

$("#"+array2[i])
假设id是
text.header
。查看结果选择器字符串将变成什么:

$('#text.header')
此选择器将匹配id为
text
且类别为
header
的元素。那不是你想要的。jQuery解决方案是转义dot,但更好的方法是只使用本机DOM方法并将其包装到jQuery对象中:

$(document.getElementById(array2[i]))

我没有在重复问题中看到这种方法,所以我不妨在这里发布。

您提到了
myCount
,但没有使用它。 另外,jquery在
id
中使用
时也会产生问题,因此请在此处使用
javascript
进行查询
选择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]);
}
var array2=新数组();
var array1=[1,2];
$(“.countDiv”)。每个(函数(){
array2.push($(this.attr(“id”));
});

对于(i=0;i

您还需要转义反斜杠:
\\。
当然可以。请参阅editOP在id属性中使用它,这很好。是的。但是jQuery将其识别为类名分隔符:想想
$(“#test.header”)是什么
将选择,考虑到
通常在类名之前。+1用于将jQuery与DOM方法相结合
:)
life saver!!!谢谢你,伙计…工作了。。达尼亚瓦德@非常欢迎。。。。
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]);
}