首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery div地址类

jQuery div地址类
EN

Stack Overflow用户
提问于 2012-04-20 00:43:23
回答 2查看 563关注 0票数 4

我使用以下代码将活动类添加到选定的div中:

代码语言:javascript
复制
$("div #"+ myID).addClass( "active" );

这只在myID是一个单词时有效,当myID中有空格时,代码崩溃,我试图用引号将myID括起来,但不起作用。

许多内容都有带空格的div id,因为我不是内容所有者,无法控制更正内容,我只能修改我的代码来处理内容。有没有办法用空格指向div id?谢谢。

问题解决了。感谢所有人:-)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-20 01:40:05

代码语言:javascript
复制
$("div #"+ myID).addClass( "active" );

上面的代码不是有效的

id HTML5全局属性:

id属性为HTML元素指定唯一的id (该值在HTML文档中必须是唯一的)。

id属性最常用于指向样式表中的样式,并由JavaScript (通过HTML DOM)操作具有特定id的元素。

HTML

  • 必须以字母A-Z或a-z开头,后面可以跟:字母(A-Za-z)、数字(0-9)、连字符("-")和下划线(“_”)在

  • 中,所有的值都是至少包含一个字符(不能为空)的case-insensitive.

  • Must,并且不能包含任何空格

示例: HTML5 below id's中的是有效的。

代码语言:javascript
复制
<p id="#">Foo.</p>
<p id="##">Bar.</p>
<p id="♥">Baz.</p>
<p id="©">Inga.</p>
<p id="{}">Lorem.</p>
<p id="“‘’”">Ipsum.</p>
<p id="⌘⌥">Dolor.</p>
<p id="{}">Sit.</p>
<p id="[attr=value]">Amet.</p>
<p id="++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.">Hello world!</p>

jQuery中的:jQuery可以处理任何有效的ID名称。我们只需要转义元字符(点、分号、正方形brackets...etc)。(就像java-script有引号问题一样)。

而在jQuery中使用id有以下限制。

代码语言:javascript
复制
// Does not work
 $("#some:id")

 // Works!
 $("#some\\:id")

 // Does not work
 $("#some.id")

 // Works!
 $("#some\\.id")

请参阅reference here

票数 1
EN

Stack Overflow用户

发布于 2012-04-20 00:44:23

元素ID%s不应包含空格。

ID和名称令牌必须以字母(A-Za-z)开头,后面可以是任意数量的字母、数字(0-9)、连字符("-")、下划线("_")、冒号(":")和句点(".")。

来自超文本标记语言spec

如果元素ID不在您的控制范围内,请在选择器中使用\\转义空格:

代码语言:javascript
复制
<div id="target element"></div>

$('#target\\ element').doSomething(); // escape invalid chars with \\

在您的例子中,您必须用'\\ '替换myID中的空格

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

https://stackoverflow.com/questions/10232788

复制
相关文章

相似问题

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