Проблема с добавлением в $ .each - PullRequest
0 голосов
/ 27 сентября 2011

У меня есть 3 выхода в следующих jQuery.each(), я хочу, чтобы эхо (append) каждого из них в одном теге li.

Как:

Это вывод $ .each (): how & hello & hi

Я хочу это:

<ol>
    <li>
        <a href="">how</a>
    </li>
    <li>
        <a href="">hello</a>
    </li>
    <li>
        <a href="">hi</a>
    </li>
</ol>

Но следующий код jquery добавляется все 3 раза в a li, как: (я не хочу этого)

<ol>
    <li>
        <a href="">howhellohi</a>
    </li>
    <li>
        <a href="">howhellohi</a>
    </li>
    <li>
        <a href="">howhellohi</a>
    </li>
</ol>

Это мой код jquery:

$.ajax({
    type: "POST",
    dataType: "json",
    url: 'get_residence',
    data: dataString_h,
    cache: false,
    success: function (respond) {
        $.each(respond.data, function (index, value) {
            $('ol li').append('<a href="" class="tool_tip" title="ok">' + value.name[index] + '</a>');
        });
    },
    "error": function (x, y, z) {
        alert("An error has occured:\n" + x + "\n" + y + "\n" + z);
    }
});

Это мой ответ в коде jquery:

{
    "data": [{
        "name": "how",
        "star_type": "5-hotel",
        "site": "www.sasaas.assa",
        "service": ["shalo", "jikh", "gjhd", "saed", "saff", "fcds"],
        "address": "chara bia paeen"
    }, {
        "name": "hello",
        "star_type": "4-motel",
        "site": "www.sasasa.asas",
        "service": ["koko", "sili", "solo", "lilo"],
        "address": "haminja kilo nab"
    }, {
        "name": "hi",
        "star_type": "3-apparteman",
        "site": "www.saassaas.aas",
        "service": ["tv", "wan", "hamam", "kolas"],
        "address": "ok"
    }]
}

Как это исправить?

Ответы [ 3 ]

2 голосов
/ 27 сентября 2011

Изменение

value.name[index] 

в вашем коде до

value.name

потому что это на самом деле правильный код. Вот почему вы используете .each()

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

Я думаю, что вам нужна логика:

$.each(respond.data, function (index, value) {
    $('ol li').eq(index).append('<a href="" class="tool_tip" title="ok">' + value.name[index] + '</a>');
});

Это добавит данные к соответствующему элементу списка, а не ко всем элементам списка.

0 голосов
/ 27 сентября 2011

Ваш код мне кажется правильным, проблема может заключаться в value.name[index], который, кажется, всегда равен howhellohi.Если вы предупреждаете value.name[index], что вы получаете? Если вы получаете всегда howhellohi, проблема в функции вашего сервера

...