30
console.log($('"#'+d+'"'));

私のHTMLには、次のものがあります。

<div id="2013-10-23">
    <h1>5</h1>
    <p>eeeeeeeeeeee</p>
</div>

上記のコードでは、 of を持つもの<div>idあり2013-10-23、それを取得すると、id次の構文エラーがスローされます。

Uncaught Error: Syntax error, unrecognized expression: "#2013-10-23"
4

8 に答える 8

43

試す

console.log($("#"+d));

あなたのソリューションは、文字列の一部として二重引用符を渡しています。

于 2013-10-03T12:40:00.257 に答える
18

「二重引用符」+「一重引用符」の組み合わせは必要ありません

console.log( $('#'+d) ); // single quotes only
console.log( $("#"+d) ); // double quotes only

セレクターは次のようになります。これは引用符でやり過ぎです。

$('"#abc"') // -> it'll try to find  <div id='"#abc"'>

// In css, this would be the equivalent:
"#abc"{ /* Wrong */ } // instead of:
#abc{ /* Right */ }
于 2013-10-03T12:36:55.443 に答える
8

使用してみてください:

console.log($("#"+d));

これにより、使用していた余分な引用符が削除されます。

于 2013-10-03T12:37:18.133 に答える
8

これは、たとえば、] が欠落しているセレクターを試した場合にも、サファリで発生する可能性があります。

$('select[name="something"')

しかし興味深いことに、ブラケットが欠落しているこの同じ jquery セレクターは chrome でも機能します。

于 2015-12-04T21:48:32.517 に答える
5

これを試してください(ES5)

console.log($("#" +  d));

ES6

console.log($(`#${d}`));
于 2013-10-03T12:37:33.647 に答える