$.each中追加的问题

Problem with append in $.each

本文关键字:问题 追加 each      更新时间:2023-09-26

我在jQuery.each()后面有3个输出,我想在一个标签li中回声(append)它们中的每一个。

:

输出$.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代码在一个li中追加了所有3次,如:(i not want this)

<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"
    }]
}

如何修复它?

变化

value.name[index] 

中的

value.name

因为这是正确的代码。这就是为什么使用.each()

我想这就是你想要的逻辑:

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

将数据添加到适当的列表项中,而不是将相同的数据添加到所有列表项中。

你的代码对我来说似乎是正确的,问题可能在于value.name[index],似乎总是等于howhellohi。如果你通知value.name[index],你会得到什么?如果总是得到howhellohi那么问题出在服务器端函数