/ / Criando seletores Jquery dinamicamente / possível bug Jquery - jquery

Criando dinamicamente seletores de jquery / possível bug de jquery - jquery

Estou criando dinamicamente um seletor jquery, que selecionará um elemento ou um grupo de elementos por classe, id, nome ou valor. Meu seletor é assim:

$("["+type+"="+value+"]")......

que funciona muito bem ... na maioria das vezes.

No entanto, quando coloco esse seletor em uma função, ele para de funcionar corretamente.

por exemplo. isso não funciona (mesmo se eu codificá-lo permanentemente)

$("[class=thisclass]").....

mas isso funciona

$(".thisclass").....

obviamente, eu poderia apenas verifique se o tipo é classe e use o método decimal, mas prefiro manter o método de seleção consistente.

Este é um bug do Jquery? Ou eu estou esquecendo de alguma coisa?

Respostas:

1 para resposta № 1

O problema é que [class=abc] corresponderá apenas a um elemento com a classe "abc" e não "abc def", considere o seguinte:

<div class="abc def" />
<div class="abc" />

jQuery

$(".abc"); // will match both div"s
$("[class=abc]"); // will only match the 2. div

Você poderia usar o seletor de atributo til:

// Selects elements that have the specified attribute with a value containing a given word, delimited by spaces.
$("[class~=abc]");  // will match both div"s

1 para resposta № 2

Você precisa adicionar aspas em torno do seu valor:

$("["+type+"=""+value+""]")

Se tornará

$("[class="thisclass"]")