jQuery标记导致NS_ERROR_XPC_BAD_CONVERT_JS

时间:2012-12-05 16:54:23

标签: javascript jquery

我有一个表单,允许访问者使用“添加另一个”链接添加新的表单字段。这一切都很好,但我也试图让表单包含一个“需要这个字段”复选框,并且这样做我需要添加一些额外的div,这就是我遇到问题的地方。这是我的代码:

    if (requiredbox) {
        var openPrimary = '<div class="form-item-primary">';
        var closePrimary = '</div>';
        var openSecondary = '<div class="form-item-secondary">\
            <label class="box" for="' + fieldname + '_' + counter + '_required">' + fieldlabel + ' #' + counter + ' Required</label>\
            <input id="' + fieldname + '_' + counter + '_required" class="box" type="checkbox" value="yes" name="' + fieldname + '_' + counter + '_required">\
            <span id="' + fieldname + '_' + counter + '_required" class="forminfo"></span>\
            </div>';
        var closeSecondary = '</div>';
    }
    else {
        var openPrimary = '';
        var closePrimary = '';
        var openSecondary = '';
        var closeSecondary = '';
    }
    $('<div class="form-item">\
    ' + openPrimary + '\
    <label for="' + fieldname + '_' + counter + '">' + fieldlabel + ' #' + counter + '&nbsp;<a href="" class="remove rem_' + counter + '" id="rem' + fieldname + '">(Remove)</a></label>\
    <select id="' + fieldname + '_' + counter + '" name="' + fieldname + '_' + counter + '"' + addJS + '>\
    <option value="">Please Select</option>\
    ' + optionlist + '\
    </select>\
    ' + closePrimary + '\
    ' + openSecondary + '\
    ' + closeSecondary + '\
    </div>').fadeIn("slow").appendTo('#' + fieldname + '_additions');       
    $('input#' + fieldname + '_count').val(counter);
    // Hide the "remove" link on the previous item (if applicable)
    if (counter > mincounter) {
        $('.rem_' + (counter - 1)).hide();
    }

我得到的错误是时间戳:12/5/2012 10:47:10 AM 错误:NS_ERROR_XPC_BAD_CONVERT_JS:无法转换JavaScript参数arg 0 [nsIDOMWindow.getComputedStyle] 源文件:http://mysite.com/scripts/jquery-1.8.2.js 行:6812

第6812行是:     computed = window.getComputedStyle(elem,null),

我已将问题缩小到了界限:

var closePrimary = '</div>';

如果我将结束div更改为ANYTHING,那么它工作正常但我需要为布局关闭div标签。有谁知道我在这里做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

将HTML片段生成为单独的字符串,使用alert()回显它,并将结果粘贴到W3验证器中会出现以下错误:

  

元素“DIV”的结束标记未打开

换句话说,</div>

中有一个虚假的var openSecondary = ...结束标记

顺便提一下,验证者还提出您正在重复使用one_0_required作为多个元素的ID