如何让jQuery在所有浏览器中都一样?

时间:2010-08-04 20:48:16

标签: jquery

我有以下脚本将一些内容发布到服务器并将json结果写回用户浏览器。它没有按预期工作:(

$(document).ready(function () {
    $('#productForm').ajaxForm({
        dataType: 'json',
        success: function (response) {
            var tmp = '<tr>';
            tmp += '<td><a href="/Invoice/DeleteProduct/' + response.Id +'>Kasta</a></td>';
            tmp += '<td>' + response.Quantity + '</td>';
            tmp += '<td>' + response.UnitPrice + '</td>';
            tmp += '<td>' + response.ProfitRate + '</td>';
            tmp += '<td>' + response.Description + '</td>';
            tmp += '<td>' + response.Total + '</td>';
            tmp += '</tr>';
            $('#productsBody').append(tmp);
            alternateRows();
        },
        clearForm: true,
        resetForm: true,
        timeout: 3000
    });
}); 

在firefox中一切都很好,在chrome中,新行根本没有显示,但是我的一些小区域会改变颜色。

在Internet Explorer 8中我没有得到链接,它将链接视为常规文本。我会再尖叫一下,希望有人能告诉我为什么当我从尖叫中回来时它不起作用。

3 个答案:

答案 0 :(得分:8)

尝试更改

tmp += '<td><a href="/Invoice/DeleteProduct/' + response.Id +'>Kasta</a></td>';

为...

tmp += '<td><a href="/Invoice/DeleteProduct/' + response.Id +'">Kasta</a></td>';

答案 1 :(得分:2)

这可能是一个<tbody>问题:浏览器会自动将tbody附加到表格构造中,而您正在按照自己的行为进行处理。不确定,但您可以尝试在tbody周围包裹tr,看看它是否表现得更好。也许其他人有不同的想法。

除此之外,Chrome的“Inspect Element”是你的朋友:它应该可以告诉你标记的哪个部分出现乱码。

答案 2 :(得分:0)

无法做到。即使您使用所有浏览器今天,它也可以在明天的浏览器中轻松打破下一个版本。 (假设有一个新版本的jQuery准备就可以解决任何可能出现的问题,如果没有,我猜你不得不等待,只能容忍一个破碎的网站。)

唯一100%肯定的答案是:如果您需要一致的平台,请使用JavaScript进行认真的开发,使用Silverlight,Flex或JavaFX等VM解决方案。 JavaScript / AJAX / DHTML应该只用于你可以承受几天破坏的非关键任务的东西。