0

我在奇怪的情况下挣扎。1、在Chrome和Firefox中打开和调试同一个页面。2.代码是:

$("ul[id^='_'").each(function(){
         // some actions which work good in Chrome
});

3. 调试时我发现问题出在$("ul[id^='_'") 4. 尝试在 Chrome 控制台中执行此操作,我得到:

在此处输入图像描述

没关系,我期待。然而,Firefox 25 中的相同代码返回给我以下内容:

在此处输入图像描述

那是空对象,显然不是。那么这两个浏览器中的代码有什么区别呢?我怀疑问题可能出在 id-attribute 的西里尔文值上,但它成功地在 IE 和 Chrome 上运行,并且落在 Firefox 和 Mozilla 中?

请帮我修复。

UPD:http: //jsfiddle.net/jeston/WEm78/

4

3 回答 3

3

那可能是错的吗:

$("ul[id^='_']").each(function(){
         console.log(this)
});

//ul[id^='_' ] <----

于 2013-11-11T14:37:52.647 回答
1

替代解决方案

var $result = $('ul').filter(function(){
    return this.id.charAt(0) === '_';
});

console.log($result);

http://jsfiddle.net/2enJ3/

于 2013-11-11T14:40:19.480 回答
0

关于ID 使用什么,有一个很好的答案。

简而言之,问题是 HTML ID 字段只能以字母开头,不能以数字或特殊字符开头。

例如,这些是有效的 ID

hello
hello_1
hello_world_1
dropdown

这些不是

1_dropdown
$34_element
于 2013-11-11T14:40:35.787 回答