Jquery:获取列表

时间:2015-10-13 09:36:45

标签: javascript jquery html

当我点击现有复选框中的选项时,我使用jquery添加新复选框。

接下来,我在此复选框中添加一个ID,然后通过新的jquery获取它的值。我想创建一个新的jquery来获取所有扩展的已检查ID的ID。

我目前的HTML代码是:

<div id="div_id_diag-diagnosis_option" class="form-group">
    <label for="id_diag-diagnosis_option_0" class="control-label col-md-3 requiredField">Option<span class="asteriskField">*</span> </label>
    <div class="controls col-md-8">
        <label class="checkbox">
            <input type="checkbox" name="diag-diagnosis_option" id="id_diag-diagnosis_option_1" value="b">b</label>
        <label class="checkbox">
            <input type="checkbox" name="diag-diagnosis_option" id="id_diag-diagnosis_option_2" value="a">a</label>
        <label class="checkbox">
            <input type="checkbox" name="diag-diagnosis_option" id="id_diag-diagnosis_option_3" value="c">c</label>
    </div>
</div>

添加复选框的jquery是:

$("input[name='diag-diagnosis_option']").change(function() {
    var $this = $(this);
    if ($this.prop('checked')) {
        var option = $(this).val();
        alert(option);
        $(this).parent().append("<a href='#'>here</a>");
    } else if ($this.siblings('a').length) {
        $this.siblings('a').remove();
    }
});

获取新复选框值的jquery如下所示:

    $(document).on('change', '#extended', function () {
    var option = $(this).val();
    //alert(option);
});

获取所有扩展选中复选框的ID的jquery是下面的那个,但它不起作用。

var selected = [];
$(document).on('each', '#extended input:checked', function () {
    selected.push($(this).attr('id'));
    alert(selected);
});

您可以对其进行测试here

你能帮我吗?

2 个答案:

答案 0 :(得分:3)

您有不正确的语法来迭代复选框。您正尝试将query="select * from t_monkeys where is_deleted=0" deltaQuery="select monkey_id from t_monkeys where last_changed_dt > '${dataimporter.last_index_time}'" deltaImportQuery="select * from t_monkeys where concat('monkey-',monkey_id) = '${dataimporter.delta.monkey_id}' 用作活动。但是每个都是jquery方法,甚至没有与元素相关联。并使用它的正确语法是:

each

但是,您可以使用var selected = []; $('#extended input:checked').each(function () { selected.push($(this).attr('name')); alert(selected); }); .map()以更干净的方式实现此目的:

.get()

答案 1 :(得分:0)

修改

当您动态附加复选框时,您应该在更改事件处添加值..也有动态复选框具有相同的ID ..您应该使用类而不是不允许的ID

将其作为 -

var selected = [];
$("input[name='diag-diagnosis_option']").change(function () {
    var $this = $(this)
    if ($(this).prop('checked')) {
        var option = $(this).val();
        $(this).parent().append('<label><input type="checkbox" class="extended" 
                               name="extended" value=' + escape($(this).attr('value')) + '>
                               Extended</label>');

    } else if ($this.siblings('label').length) {

        $this.siblings('label').remove();

    }
});


$(document).on('change', '.extended', function () {
    var option = $(this).val(); // or attr('name');
    selected.push(option);
    alert(selected);
});

LIVE https://jsfiddle.net/mailmerohit5/wt9btcb0/