附加在$ .each中的问题

时间:2011-09-27 13:49:49

标签: javascript jquery append each

我在以下jQuery.each()中有3个输出,我希望echo(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代码在a li中追加所有3次,如:(我不想要这个)

<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 个答案:

答案 0 :(得分:2)

更改

value.name[index] 

在您的代码中

value.name

因为那实际上是正确的代码。这就是你使用.each()

的原因

答案 1 :(得分:1)

我认为这是你追求的逻辑:

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

这会将数据添加到正确的列表项,而不是所有列表项的相同数据。

答案 2 :(得分:0)

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