如果我的html是这样的:
<td class="controlCell">
<input class="inputText" id="SearchBag.CompanyName" name="SearchBag.CompanyName" type="text" value="" />
</td>
如何使用JQuery选择#SearchBag.CompanyName?我不能让它工作,我担心是圆点打破了它。令人恼火的是,重命名我所有的id将是一项繁重的工作,更不用说可读性的损失。
备注:
请不要开始讨论桌子是如何不是为了布局而制作的。我非常了解value and shortcomings of CSS,并努力尽可能多地使用它。
发布于 2009-03-03 10:09:49
@Tomalak在评论中:
由于ID选择器的前面必须有一个哈希#,因此这里不应该有歧义
“#id.class”是一个有效的选择器,它需要一个id和一个单独的类来匹配;它是有效的,并不总是完全多余的。
选择文字‘’的正确方法在CSS中是转义它:“#id.moreid”。这曾经在一些较旧的浏览器(特别是IE5.x)中造成麻烦,但所有现代桌面浏览器都支持它。
同样的方法似乎在jQuery 1.3.2中也能用,尽管我还没有对其进行彻底的测试;quickExpr不能处理它,但是更复杂的选择器解析器似乎能正确地处理它:
$('#SearchBag\\.CompanyName');
发布于 2009-03-03 09:08:16
一个变体是这样的:
$("input[id='SearchBag.CompanyName']")
发布于 2013-06-06 13:33:29
如果你使用document.getElementById
,你不需要转义任何东西
$(document.getElementById('strange.id[]'))
getElementById
假设输入只是一个id属性,因此点不会被解释为类选择器。
https://stackoverflow.com/questions/605630
复制相似问题