1

他のdiv(多くのクラス)を含むdiv(id = container)があります。コンテナーを文字列 "AAAA"として使用できますが、変数mystringで同じ効果を実行することはできません。

<div id="container">
<div class="AAAA">AAAA content</div>
<div class="AAAA">AAAA content</div>
<div class="BBBB">BBBB content</div>
<div class="CCCC">CCCC content</div>
<div class="DDDD">DDDD content</div>
<div class="AAAA">AAAA content</div>
</div>


<script>
var myclass = "#container>div:not("+".AAAA"+")"; // works
$(myclass).css("background-color", "red"); //works fine
//var mystring = "AAAA";
//var myclass = "\"#container>div:not(."+mystring+")\"";
//$(myclass).css("background-color", "red"); // doesn't work
</script>
4

2 に答える 2

5

エスケープされた引用符を削除します:

var myclass = "#container>div:not(."+mystring+")";
于 2012-11-19T19:37:02.663 に答える
1

作業デモ http://jsfiddle.net/xWWcZ/

\#理由:ハッシュをエスケープする必要はありません。

残りが原因に合うことを願っています。

コード

//var myclass = "#container>div:not("+".AAAA"+")"; // works
//$(myclass).css("background-color", "red"); //works fine
var mystring = "AAAA";
var myclass = "#container>div:not(."+mystring+")";
$(myclass).css("background-color", "red"); // work now​​​
于 2012-11-19T19:39:53.150 に答える