Muszę zbierać zawartość wszystkich elementów listy z klasą nadrzędną list_array, a następnie przekazać je za pomocą uzyskiwania zmiennej do połączenia AJAX. Czy możesz polecić strategię?

Oto Fiddle.

HTML:

<div>
    <ul class="list_array">
        <li>item A</li>
        <li>item B</li>
        <li>item C</li>
    </ul>
</div>
<p>some text</p>
<div>
    <ul class="list_array">
        <li>item B</li>
        <li>item C</li>
        <li>item D</li>
    </ul>
</div>
<p>some text</p>
<div>
    <ul class="list_array">
        <li>item A</li>
        <li>item C</li>
        <li>item E</li>
    </ul>
</div>

Oto mój obecny postęp:

$(document).ready(function(){
    var listItemArr = [];
    $('.list_array li').each(function() {
        listItemArr.push($(this).text());
    });
    alert(listItemArr);
});

Kąt Jako Fiddle pokazuje, to nie działa.

Idealnie po prostu przekażę również unikalne struny, więc oczekiwany wynik byłby:

item A
item B
item C
item D
item E

(i nie zawierają duplikatów)

Ponadto każde zalecenie w przekazywaniu tablicy na moją stronę przetwarzania PHP jest przywitana.

Dzięki!

1
Ryan 10 sierpień 2012, 10:29

1 odpowiedź

Spróbuj tego

var all=[];
$('ul.list_array li').each(function(){
    var text=$(this).text();
    if($.inArray(text, all)==-1) all.push(text);
});
$.get('/url/to/page', {'items': all}, function(data){
    console.log(data);
});

Zmienna all jest tablicą jak ["item A", "item B", "item C", "item D", "item E"] i twoja tablica jest dostępna w $_GET jako $_GET['items'].

Sprawdź to, aby zobaczyć zwilżoną tablicę.

1
The Alpha 10 sierpień 2012, 07:18