如何使用jQuery选择器选中id含方括号、点号的表单元素?
问题原因
你的id中包含[]、.这两类jQuery/CSS选择器的保留元字符:
[]在选择器语法中被识别为属性筛选标记.在选择器语法中被识别为类名筛选标记
直接写入选择器时,jQuery不会把它们当成id字符串的一部分解析,因此匹配失败。
可行解决方案
方案1:转义特殊元字符
每个元字符前加两个反斜杠转义(因为JavaScript字符串本身需要对反斜杠做一次转义,最终传递给jQuery选择器的是单个反斜杠+元字符的转义格式):
$('#MyField\\[1d81c42a-4c8f-45a8-a219-0ff29d328103\\]\\.Name')
方案2:使用全匹配属性选择器(更不易出错)
直接用id属性的完整字符串匹配,不需要手动转义特殊字符:
$('[id="MyField[1d81c42a-4c8f-45a8-a219-0ff29d328103].Name"]')
方案3:结合原生DOM方法(性能最优)
原生getElementById直接匹配完整id字符串,不会解析选择器语法,兼容性最好:
$(document.getElementById('MyField[1d81c42a-4c8f-45a8-a219-0ff29d328103].Name'))
内容的提问来源于stack exchange,提问作者chobo2
相关产品推荐
相关产品推荐

