0

私は奇妙なケースに苦労しました。1. Chrome と Firefox で同じページを開いてデバッグします。2.コードは次のとおりです。

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

3.デバッグ中に、問題が$("ul[id^='_'") 4にあることがわかりました。これをChromeコンソールで実行しようとすると、次のようになります。

ここに画像の説明を入力

それは問題ありません。ただし、Firefox 25 の同じコードは次のように返します。

ここに画像の説明を入力

それは空のオブジェクトですが、明らかにそうではありません。では、2 つのブラウザーでのこのコードの違いは何でしょう? 問題は id-attribute のキリル文字の値にあるのではないかと思いますが、IE と Chrome では正常に動作し、Firefox と Mozilla ではうまくいきますか?

修正を手伝ってください。

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

4

3 に答える 3

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 に答える