用于循环附加4次的JavaScript

用于循环附加4次的JavaScript,javascript,jquery,Javascript,Jquery,我有一个JavaScript程序不能正常运行。由于某些原因,在它附加它从选中的单选框中实际得到的内容之前,它会在附加框中附加三次,并在附加框中除了样式之外没有任何注释。我不确定我做错了什么 $(document).delegate('#add-owner', 'pageinit', function () { loadOwners(); $('#add-owner-save').bind('click', function () {

我有一个JavaScript程序不能正常运行。由于某些原因,在它附加它从选中的单选框中实际得到的内容之前,它会在附加框中附加三次,并在附加框中除了样式之外没有任何注释。我不确定我做错了什么

$(document).delegate('#add-owner', 'pageinit', function () {
            loadOwners();
            $('#add-owner-save').bind('click', function () {
                var permission = $('#editing-permissions option:selected').text();
                var selection = $("input[type='radio']:checked") || [];
                if (selection.length > 0) {
                    for (var i = 0; i < selection.length; i++) {
                        console.log($('#label-' + selection[i].id).find('.owner-name').text());
                        console.log($("input[type='radio']:checked").val());
                        $('.display-owners').append('<div class="ui-grid-a"><div class="ui-block-a">' + $('#label-' + selection[i].id).find('.owner-name').text() + '</div><div class="ui-block-b" style="text-align:right">' + permission + '</div></div>');
                    }
                    $('.display-owners').trigger('create');
                }
                $('.display-owners').show();
                $('#add-owner').dialog('close');
                $('input[name=contribute-radio]').attr('checked', false).checkboxradio("refresh");
                return false;
            });
        });
$(document).delegate('addowner','pageinit',function(){
装载者();
$(“#添加所有者保存”).bind('click',函数(){
var权限=$(“#编辑权限选项:选定”).text();
变量选择=$(“输入[type='radio']:选中”)| |[];
如果(selection.length>0){
对于(变量i=0;i
我想问题是我在这一页上有多个无线电区域。如何指定我只希望选中这些单选按钮?

此代码:

... + $(“#label-”+选择[i].id).find(“

应该是这样的:

... + $('#label-' + selection[i].attr('id')).find('...
因为您在
selection
数组中拥有的是jQuery对象,而不是DOM元素对象。

感谢Esalija指出我的假设不正确。

此代码:

…+$('#label-'+选择[i].id).find('

应该是这样的:

... + $('#label-' + selection[i].attr('id')).find('...
因为您在
selection
数组中拥有的是jQuery对象,而不是DOM元素对象。


感谢Esalija指出我的假设是不正确的。

既然你说你有多套单选按钮,你使用的选择器会在页面上找到所有单选按钮,这就是为什么你有多个“选中”单选按钮

这:


为此:


然后,只需将每台收音机命名为不同的名称,并将“radioset1”替换为您需要的收音机。

既然您说您有多组单选按钮,您使用的选择器会在页面上找到所有单选按钮,因此您有多个“选中”单选按钮

这:


为此:


然后,只需将每个无线电机命名为不同的名称,并将“radioset1”替换为您需要的设备。

选择
不是一个数组,而是一个jQuery对象…
var selection=$([input[type='radio']:checked”)|[;
永远不会执行,因为对象始终是真实的。它仍然执行了4次。只有它4次都通过一条错误消息并使程序崩溃。
选择
不是数组,而是一个jQuery对象…
var selection=$([input[type='radio']:checked”)|[;
永远不会执行,因为对象总是真实的。它仍然经历了4次。只有它经历了所有4次错误消息并使程序崩溃。
selection.length
有什么值?你在cnosole中得到了什么?它在控制台中每次都返回4。我不明白为什么。请你放一个JSFIDLE which也包含相关的HTML?这可能对调试有很大帮助。
selection.length
的值是多少?你在cnosole中得到了什么?它在控制台中每次都返回4。我不明白为什么。你能提供一个包含相关HTML的JSFIDLE吗?这可能对ass有很大帮助正在调试此文件。
var selection = $("input[name='radioset1']:checked") || [];