如何在jQuery中访问JobRoles[1].BasedIn及JobRoles[0].AgeFrom输入框
jQuery属性选择器问题解决方案
问题1:如何访问name属性为JobRoles[1].BasedIn的输入元素?
你的name属性里包含了[]和.这类特殊字符,直接写选择器会让jQuery解析出错,推荐两种靠谱的写法:
方式一:用引号包裹属性值(直观又好读)
$('input[name="JobRoles[1].BasedIn"]')如果外面用双引号,里面换单引号也可以:
$("input[name='JobRoles[1].BasedIn']")方式二:转义特殊字符
给方括号前加反斜杠转义(注意JavaScript字符串里要写两个反斜杠,因为第一个是用来转义第二个的):$('input[name=JobRoles\\[1\\].BasedIn]')
问题2:解决选择器unrecognized expression错误
这个错误就是因为属性值里的方括号没处理好——方括号在CSS选择器里是专属语法符号,当你的属性值本身就带方括号时,必须把整个属性值用引号包起来,jQuery才会把它当成完整的属性值解析,而不是选择器语法的一部分。
把你的代码改成这样就行:
$(options.form).find(':input[name="' + fullOtherName + '"]')[0];
这样就能正确选中name="JobRoles[0].AgeFrom"的元素了。
内容的提问来源于stack exchange,提问作者Saneesh kunjunni
相关产品推荐
相关产品推荐

