0

处理从数据库返回的一些数据。所有数据都在一个表中返回,特别是在一个 td 中。返回数据的标记是这样的

<table border=1>
    <tr>
        <td>Field Name</td>
        <td>Field Value</td>
    </tr>
    <tr>
        <td>SuccessFlag</td>
        <td>False</td>
    </tr>
    <tr>
        <td>ResponseMessage</td>
        <td>Invalid email address, Invalid User Name, etc., etc</td>
    </tr>
</table>

在我的错误处理中,我能够到达第 6 个 td 并显示错误没问题。

success: function(data) {
    var answer = $(data).find("td:eq(3)").text();
    var message = $(data).find("td:eq(5)").text();
    if (answer==="True") {
        $("#bottomContent").load("page.php #div");
        } else {
        $('#processing').hide();
        $('input[type="text"], input[type="password"]').val("");
        $('#messageBox').show().html('<ul><li>' + message + '</li></ul>');
        }
    }

不幸的是,它会在一里内输出所有内容。我想弄清楚如何在“,”处拆分它们,并在拆分后为每个项目创建一个单独的 li 。

4

1 回答 1

2

我知道这个解决方案没有使用 jQuery,但是您是否考虑过使用 knockoutjs。它显着简化了客户端数据绑定。

<ul data-bind="foreach: errorMessages ">
    <li>
        <label data-bind="text: title"></label>
    </li>
</ul>

<script>
// Use knockout observable array
var errorMessages = ko.observableArray();

success: function(data) {
var answer = $(data).find("td:eq(3)").text();
var message = $(data).find("td:eq(5)").text();
if (answer==="True") {
    $("#bottomContent").load("page.php #div");
    } else {
    $('#processing').hide();
    $('input[type="text"], input[type="password"]').val("");

    // Knockout array will automatically bind to your DOM
    this.errorMessages(message);
    }
}
</script>

您可能需要将您的“消息”变量手动处理为 JSON 集合而不是表格。

于 2012-12-06T04:02:09.027 回答