首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当ID包含一个点时,如何使用jquery按id选择html节点?

当ID包含一个点时,如何使用jquery按id选择html节点?
EN

Stack Overflow用户
提问于 2009-03-03 09:03:16
回答 7查看 87.1K关注 0票数 187

如果我的html是这样的:

代码语言:javascript
复制
<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,并努力尽可能多地使用它。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-03-03 10:09:49

@Tomalak在评论中:

由于ID选择器的前面必须有一个哈希#,因此这里不应该有歧义

“#id.class”是一个有效的选择器,它需要一个id和一个单独的类来匹配;它是有效的,并不总是完全多余的。

选择文字‘’的正确方法在CSS中是转义它:“#id.moreid”。这曾经在一些较旧的浏览器(特别是IE5.x)中造成麻烦,但所有现代桌面浏览器都支持它。

同样的方法似乎在jQuery 1.3.2中也能用,尽管我还没有对其进行彻底的测试;quickExpr不能处理它,但是更复杂的选择器解析器似乎能正确地处理它:

代码语言:javascript
复制
$('#SearchBag\\.CompanyName');
票数 228
EN

Stack Overflow用户

发布于 2009-03-03 09:08:16

一个变体是这样的:

代码语言:javascript
复制
$("input[id='SearchBag.CompanyName']")
票数 131
EN

Stack Overflow用户

发布于 2013-06-06 13:33:29

如果你使用document.getElementById,你不需要转义任何东西

代码语言:javascript
复制
$(document.getElementById('strange.id[]'))

getElementById假设输入只是一个id属性,因此点不会被解释为类选择器。

票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/605630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档