我有一个
的HTML
<h3 id="tourName_ROCK.ROCK"></h3>
<h3 id="tourName_MOBT.MOBT"></h3>
和JSON
dataTourBase :{
"list":[{
"code" : "ROCK.ROCK",
"name" : "Laugher Bins"
},
{
"code" : "MOBT.MOBT",
"name" : "Laugher Bins"
}]
在我的Jquery代码中,我想附加匹配的代码及其名称。但是问题是我的DOM由于“。”而找不到ID。 (DOT)操作员
我这样做是这样的:
jQuery.each(dataTourBase.list, function(i, excursion) {
$("#" + "tourName_" + excursion.code).html(excursion.name);
}
请提出建议,我如何在DOM中找到我的ID。
提前致谢
最佳答案
您有两种选择,第一种是最好的-我个人认为-从元素的.
中删除id
个字符;用允许的字符(例如-
或_
)替换它们。
否则,您必须使用String.prototype.replace()来转义字符串中的.
字符:
jQuery.each(dataTourBase.list, function(i, excursion) {
$("#" + "tourName_" + excursion.code.replace(/\./g,'\\.').html(excursion.name);
}
附加代码:
replace(/\./g, '\\.')
通过先用反斜杠转义来匹配所有文字
.
字符(因为句点是正则表达式中的特殊字符),并用两个反斜杠后跟一个句点的序列替换该句点;第一个反斜杠转义第二个反斜杠,当在jQuery选择器中使用&ndash时,第二个反斜杠转义句点,因此将其视为“文字”句点,而不是将以下字符串标识为类名。但是,老实说,避免问题比对问题进行编码要容易得多。
参考文献:
Guide to JavaScript Regular Expressions。
String.prototype.replace()
。