2010-12-15 30 views
0

Quelqu'un peut-il partager une idée sur la façon de l'implémenter? J'ai une variable avec des noms div séparés par des virgules. Après une requête AJAX je dois cacher tous les divs analysés de la chaîne. Alors, comment puis-je analyser la chaîne pour obtenir le nom div individuelle et le cacher ??Obtention de valeurs d'ID div à partir d'une chaîne et création d'une chaîne

Merci à l'avance

code jQuery

var dragExternal = 'div1a,div1b,div2a,div2b'; 

    $.ajax({ 
    type: 'POST', 
    url: "index.html", 
    data: dragExternal, 
    processData: false, 
    success: function(data) { 
    alert("Success"); 
     //Start of code to hide all the div's parsed from the string 
     $('#div1a').slideUp(90); 
    }, 
    error: function(data) { 
    alert("Cannot Reach Server"); 
    } 
    }); 

HTML Code

<div id="div1a">Item 1</div> 
<div id="div1b">Item 2</div> 
<div id="div2a">Item 3</div> 
<div id="div2b">Item 4</div> 
<div id="div3a">Item 5</div> 
<div id="div3b">Item 6</div> 

Répondre

3

Tout d'abord, vous devriez obtenir tous les ID de dragExternal. Pour ce faire, utilisez string.split(','). Vous pouvez ensuite utiliser la méthode jQuery.each pour parcourir chacun des éléments.

var dragExternal = 'div1a,div1b,div2a,div2b'; 

$.each(dragExternal.split(','), function(i,item){ 
    $("#" + item).hide(); 
}); 

Exemple: http://jsfiddle.net/jonathon/UMCrC/

Bien que vous ne même pas besoin .each $ (il est bon de savoir l'usage que) - car ils sont tous juste des chaînes:

var dragExternal = 'div1a,div1b,div2a,div2b', 
    items = dragExternal.split(',') 

for(var i=0;i<items.length;i++){ 
    $("#" + item[i]).hide(); 
}; 

Vous Utilisez le id selector pour obtenir chaque div en préfixant le nom div avec #.

+0

Le premier est beaucoup plus propre. – sje397

+0

Yup - ne peut pas blâmer jQuery pour être belle! –

+0

Merci Jonathon ... ça a fonctionné parfaitement bien .. :-) – Sullan