javascript - JQuery如何获取CheckBox的ID?

标签 javascript jquery html checkbox

我想,当我双击卡片时弹出对话框。然后可以创建动态复选框。创建复选框时,可以编辑每个复选框的文本。如果我有例如,问题就来了。创建了 3 个复选框并想要编辑其中一个,所有其他复选框的名称与我要编辑的复选框相同。您可以在下图中看到问题:

Image

J查询:

function addCheckbox(name, status) {
        status = status || false;

        var container = $('#divboxs');
        var inputs = container.find('input');
        var id = inputs.length + 1;
        var data = {
            status: status,
            name: name
        };

        var div = $('<div />', { class: 'allcheckbox' });
        $('<input />', {
            type: 'checkbox',
            id: 'cb' + id,
            value: name
        }).prop('checked', status).on('change', function () {
            data.status = $(this).prop('checked');
        }).appendTo(div); /* set checkbox status and monitor changes */

        $('<label />', {
            'for': 'cb' + id,
            text: name
        }).appendTo(div);

        var $editCheckBox = $('<p />', {
            class: 'editCheckBox',
            text: 'Edit'
        }).appendTo(div);

        div.appendTo(container);

        container.data('checkboxes').push(data);
    }

        $('#divboxs').on('click', '.editCheckBox', function () {
        var text = $(this).parents(".allcheckbox").find("label").text();
        var input = $('<input id="attribute" value="' + text + '" />')
        $('.allcheckbox').text('').append(input);
        input.select();

        input.blur(function () {
            var text = $('#attribute').val();
            $('#attribute').parent().text(text);
            $('#attribute').remove();
        });
    });    

});

我认为这是给我带来问题的代码部分: var input = $('<input id="attribute" value="' + text + '" />')

我想我应该使用 CheckBox 的 ID:id: 'cb' + id , 而不是 id="attribute" .怎么在这个地方插入checkBox的id?

Live Demo

最佳答案

好的。因此,您的代码存在一些问题。

第一个存在。您将新创建的输入附加到所有“allcheckbox”类元素

$('.allcheckbox').text('').append(input);

第二个问题是在同一行中清空整个 DIV。一旦您想用新值更新输入和标签,这就会产生问题。

因此,隐藏任何您不想显示的元素,一旦调用模糊事件,删除新输入,更新值,然后显示您之前隐藏的元素。

在下面找到更新的 fiddle : http://jsfiddle.net/62QY8/122/

此外,还有一点旁注。 “类”是一个 JavaScript 保留字。所以宁愿使用“类名”。即。

    var $editCheckBox = $('<p />', {
        classname: 'editCheckBox',
        text: 'Edit'
    }).appendTo(div);

关于javascript - JQuery如何获取CheckBox的ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23496418/

相关文章:

javascript - 使用背景图片移动 HTML5 Canvas

Javascript:数量变化时更新价格

html - 输入字段文本,仅在 IOS 上更改样式

javascript - 循环 JSON,将一些键存储在其他 JSON 对象中

javascript - AmChart StartDuration 不起作用

javascript - 如何使用 jQuery Mobile 动态创建按钮?

javascript - 如何制作一个4步的范围 slider ?

html - CSS: margin 自动和绝对位置

javascript如何克隆

javascript - 使用Jquery拖放,从拖放的div中获取值