назначить значения массива элементам на странице - PullRequest
0 голосов
/ 16 сентября 2011

Я все еще немного новичок в jQuery и мне нужна небольшая помощь.

Я использую скрипт перетаскивания, как показано ниже.

$(document).ready(function() {
    $(function() {

        $("#contentLeft ul").sortable({
            opacity: 0.6,
            cursor: 'move',
            update: function() {

                var order = $(this).sortable("serialize") + '&action=updateRecordsListings';

                $.post("updateDB.php", order, function(theResponse) {

                    $("#contentRight").html(theResponse);

                });

            }

        });

    });

}); 

theResponse содержит динамический массив, подобныйниже, как только перетаскивание завершено, и скрипт php-сервера проанализирован.

Array
(
    [0] => 3
    [1] => 4
    [2] => 1
    [3] => 2
)

Что мне нужно сделать, это как только я получу ответ - переименуйте div идентификаторы соответствующих div,так что верхний получит questionOrder_0, следующий questionOrder1, следующий questionOrder2 и т. д. и т. д.

Div при загрузке страницы создаются динамически, как показано ниже.

<div id="questionOrder_0" class="questionHolder"> ...some stuff here ... </div>
<div id="questionOrder_1" class="questionHolder"> ...some stuff here ... </div>
<div id="questionOrder_2" class="questionHolder"> ...some stuff here ... </div>
<div id="questionOrder_3" class="questionHolder"> ...some stuff here ... </div>

Но как только я получуперетаскивайте, как если бы я переместил div # questionOrder3 наверх:

<div id="questionOrder_3" class="questionHolder"> ...some stuff here ... </div>
<div id="questionOrder_0" class="questionHolder"> ...some stuff here ... </div>
<div id="questionOrder_1" class="questionHolder"> ...some stuff here ... </div>
<div id="questionOrder_2" class="questionHolder"> ...some stuff here ... </div>

База данных, которую обновляет скрипт php, изменяется соответствующим образом, но мне нужно изменить div id в реальном времени после того, как падениепроизошло.

Надеюсь, это имеет смысл.

Ответы [ 2 ]

1 голос
/ 16 сентября 2011

Вот простой пример, который поможет вам встать на пути. http://jsfiddle.net/LcK8G/5/

var a = ['a','b','c','d'];
//loop through each div, change selector for your needs
$('div').each(function(i,el){
    $el = $(el); //grab this iterations element and make a jQuery object out of it
    $el.attr('id',a[i]); //change the elements id based on this iterations index
    //this just displays the id for you to see how it is working, would be removed later
    $el.text($el.attr('id')); /=
});
0 голосов
/ 16 сентября 2011

Я не совсем понимаю, почему вы хотите манипулировать идентификаторами.

Вы можете столкнуться с конфликтами, если любым двум элементам будет назначен один и тот же идентификатор в любой момент времени.

Это будетлучше всего выполнить сортировку на стороне сервера или вместо сериализации в JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...