2010-12-15 6 views
0

Kann jemand irgendeine Idee teilen, wie man das umsetzt. Ich habe eine Variable mit durch Komma getrennten Div-Namen. Nach einer AJAX-Anfrage muss ich alle analysierten Divs aus der Zeichenkette verstecken. Wie analysiere ich die Zeichenkette, um den individuellen div Namen zu erhalten und ihn zu verstecken?DIV ID Werte aus einer Zeichenkette erhalten und manipulieren

Vielen Dank im Voraus

jQuery-Code

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> 

Antwort

3

Erstens, würden Sie alle IDs von dragExternal zu bekommen. Verwenden Sie dazu string.split(',').

Dann können Sie die jQuery.each Methode verwenden, um jedes der Elemente durchlaufen.

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

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

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

Obwohl Sie nicht einmal .each $ brauchen (es ist schön, die Nutzung allerdings zu wissen) - da sie alle nur Zeichenfolgen sind:

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

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

Sie Verwenden Sie die id selector, um jedes div zu erhalten, indem Sie den div-Namen mit # voranstellen.

+0

Der erste ist viel sauberer. – sje397

+0

Yup - kann jQuery nicht dafür beschuldigen, schön zu sein! –

+0

Danke Jonathon ... es hat ganz gut funktioniert .. :-) – Sullan

Verwandte Themen