1

我有一些 Jquery 添加到其他 Jquery 的负载中(一切正常),但它破坏了我的其余代码。那里有一个错误,但我就是不知道在哪里!

//Retrieve the customization summary area:
var summary = $('#customise-area-3 p');

//Use jQuery to select all the checkboxes with the name hardware that are checked.
$('input[type=checkbox][name=hardware\[\]]:checked').each(function(k,v) {
    //Retrieve the value of the checkbox.
    var checkboxValue = v.val();

    //Add the checkbox value to the summary area:
    summary.innerHTML += checkboxValue + '<br />';
});

这是在 Wordpress 中,所以我的 Jquery 的所有其余部分都采用以下样式:

jQuery(document).ready(function( $ ) 
{
    $("#customise").click(function()
    {
        $(".entire_product").hide();
        $(".customise").show();
    });
});

为了让代码在 Wordpress 环境中工作,我做了以下工作:

jQuery(document).ready(function( $ ) 
{
   var summary = $('#customise-area-3 p').get(0);

   $('input[type=checkbox][name="hardware[]"]:checked').each(function(k,v) {
    //Retrieve the value of the checkbox.
    var checkboxValue = v.val();

    //Add the checkbox value to the summary area:
    summary[0].innerHTML += checkboxValue + '<br />';
});
});

尽管这可以阻止我的其余代码被破坏,但它实际上并没有做任何事情。即将选中的复选框值添加到摘要中。

4

2 回答 2

1

您在选择器中错误地使用了 \ 斜杠,并且您在错误的 jQuery 对象上使用了 innerHTML

改变

$('input[type=checkbox][name=hardware\[\]]:checked')

$('input[type=checkbox][name="hardware[]"]:checked')

如果您需要检查以硬件开头的名称,您最好使用通配符

$('input[type=checkbox][name^=hardware]:checked')

改变

summary.innerHTML += checkboxValue + '<br />';

summary[0].innerHTML += checkboxValue + '<br />';
于 2013-02-06T09:23:58.510 回答
0

你的线

//Add the checkbox value to the summary area:
    summary.innerHTML += checkboxValue + '<br />';

正在尝试设置对象的 innerHTML,这看起来是您的代码中断的地方

你应该使用

summary.html(checkboxValue + '<br />');

那里可能还有其他类似的错误。但这是我唯一能看到的

于 2013-02-06T09:24:08.600 回答