0

我有一系列错误消息:json.Errors

有没有一种方法可以使用 jQuery 从这个数组中创建以下内容?

    <ul class="message" id="message">
        <li>message1</li>
        <li>message2</li>
    </ul>

在过去,我做了类似以下代码的事情:

$.map(json.Errors, function (error) {
   return error + '</br>';
}).join('');

我不确定它是否有帮助,但也许有人知道如何使用 $.map 来实现此目的。

4

4 回答 4

3

我建议:

$.each(json.Errors, function(i,e) {
    $('#message li').eq(i).text(e);
});

JS 小提琴演示

当然,这需要li元素和json.Errors数组之间的 1:1 关系。

如果您想创建li元素(而不是依赖它们已经存在),那么我建议:

$.each(json.Errors, function(i, e) {
    $('<li />').text(e).appendTo('#message');
});​

JS 小提琴演示

参考:

于 2012-09-20T12:17:17.263 回答
1

如果你说它是一个数组,为什么不使用简单的连接呢?

$('#message').html('<li>' + json.Errors.join('</li><li>') + '</li>');
于 2012-09-20T12:16:53.950 回答
1
var errUl = $('<ul class="message" id="message">' + $.map(json.Errors, function(error) {
    return '<li>' + error + '</li>';
}).join('') + '</ul>');

小提琴

这将创建一个包含无序列表的已解析 HTML 数据的 jQuery 对象,errUl.

参考http://api.jquery.com/jQuery.map/

于 2012-09-20T12:19:39.427 回答
1

如果你想使用地图,你可以做类似下面的事情

$("#message").empty().append($(json.Errors).map(function (msg){
  return $("<li>" + msg+ "</li>");
}));

或使用每个

$("#message").empty().append($(json.Errors).each(function (){
  return $("<li>" + this+ "</li>");
}));
于 2012-09-20T12:19:52.310 回答