Nassim
Nassim

Reputation: 2876

use variable inside a jquery selector with not()

I have a div (id =container) that is containing other divs (many classes) I am able to use the container as a string "AAAA" but can't do the same effect with a variable 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>

Upvotes: 1

Views: 3147

Answers (2)

Tats_innit
Tats_innit

Reputation: 34107

Working demo http://jsfiddle.net/xWWcZ/

Reason: you don't need to escape \# hash.

Hope rest fits the cause.

Code

//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​​​

Upvotes: 1

Denys S&#233;guret
Denys S&#233;guret

Reputation: 382170

Remove the escaped quotes :

var myclass = "#container>div:not(."+mystring+")";

Upvotes: 5

Related Questions