我正在编写一段JavaScript。我对JS完全陌生,但是我在domainchkb类中有一组复选框,并且名称各不相同。我正在尝试将这些分组到一个数组中以格式化为JSON。执行代码时,调试器在return this.parent().text();处停止。我在这里做错了什么?任何帮助,将不胜感激。

function format4Cart(){
    var domains;

    var values = $('input[name=domainchkb]:checked').map(function(){
            return this.parent().text();
    }).get();

    domains = "{\"type\" : \"single\", \"data\" : [";

    $.each(values, function(domainIndex,selected_domain){
            domains += "{\"id\" : \""+selected_domain+"\", \"domain\" : \""+whois_response.data.domain+"\"},";
    });
    $(domains).text().replace(/(\s+)?.$/,"");
    domains += "]}";
    domains=encodeURIComponent(domains);
    ajaxAdd2Cart(domains);

}

最佳答案

您正在尝试在DOM元素上调用jQuery方法.parent()。为了在元素上使用jQuery方法,您需要将其包装在jQuery调用中:

var values = $('input[name=domainchkb]:checked').map(function(){
        return $(this).parent().text();
}).get();

09-28 11:16