2010-09-10 3 views
10

Quelque chose comme ne fonctionne pas, quel est le travail?Puis-je choisir plusieurs variables d'objet dans jQuery?

var tgtCol = $('td[aria-describedby=tblGrid_Subject]'); 
var tgtHdr = $('#tblGrid_Subject'); 
$(tgtHdr, tgtCol).attr('colSpan', '3'); 
+0

Bennor a obtenu la meilleure réponse .. Je vais accepter une fois je peux (10 minutes) – bcm

+0

le point de les mettre dans une variable est parce que j'utilise les cibles plus d'une fois. – bcm

Répondre

13
var tgtCol = $('td[aria-describedby=tblGrid_Subject]'); 
var tgtHdr = $('#tblGrid_Subject'); 
$(tgtHdr).add(tgtCol).attr('colSpan', '3'); 

Cela fonctionne également:

var stuff = $('td[aria-describedby=tblGrid_Subject], #tblGrid_Subject'); 
stuff.attr('colSpan', '3'); 
+0

merci, c'était rapide – bcm

+0

+1 parce qu'il répond réellement à la question sur la sélection de plusieurs OBJETS. –

1

Vous êtes proche, vous pouvez combiner plusieurs sélecteurs par une virgule, comme ceci:

$('td[aria-describedby=tblGrid_Subject], #tblGrid_Subject').attr('colSpan', '3'); 
+0

Pas si vous avez déjà plusieurs objets et vous ne savez pas quels événements mènent à ces objets en cours de création. –

0

Vous pouvez utiliser un multiple selector initialement:

$('td[aria-describedby=tblGrid_Subject], #tblGrid_Subject').attr('colSpan', '3'); 
1

Comme les deux premières lignes renvoient déjà un objet jQuery, vous pouvez simplement le faire comme ceci:

tgtHdr.attr('colSpan', '3'); 
tgtCol.attr('colSpan', '3'); 
+0

Ce serait un cas de DRY –

0

Si ses deux sélecteurs, vous pouvez utiliser « fusion », mais si elle est plus de deux, vous devriez utiliser chaque '

// using merge: 
$.merge(selector1, selector2) // the rest 

// using each: 
$([selector1, selector2, selector3, .....etc]).each(function(){ 
    // your code here 
});