jQuery显示“name”而不是“value”

时间:2015-10-22 13:56:22

标签: jquery checkbox click

我有一个带复选框的时间表:

<table id="date">
    <tr>
        <th>Sun</th>
        <th>Mon</th>
        <th>Tue</th>
        <th>Wed</th>
        <th>Thu</th>
        <th>Fri</th>
        <th>Sat</th>
    </tr>
    <tr>
        <td><input type="checkbox" name="Sun" id="sun" value="0" /></td>
        <td><input type="checkbox" name="Mon" id="mon" value="1" /></td>
        <td><input type="checkbox" name="Tue" id="tue" value="2" /></td>
        <td><input type="checkbox" name="Wed" id="wed" value="3" /></td>
        <td><input type="checkbox" name="Thu" id="thu" value="4" /></td>
        <td><input type="checkbox" name="Fri" id="fir" value="5" /></td>
        <td><input type="checkbox" name="Sat" id="sat" value="6" /></td>
    </tr>
</table>
<p><span id="dateValue"></span></p>
<button id="dateSave">Add</button>

和jquery部分:

$(function() {
    function dateValue() {
        var values = [];
        $('#date :checked').each(function () {
            values.push($(this).val());
        });

        $('#dateValue').text(values);
    }

    $(function () {
        $('#dateSave').click(dateValue);
            $('#dateValue').text(values);
    });

    $(function () {
        $('#dateDate input').click(dateValue);
            dateValue();
    });

});

当我选中复选框并单击按钮时,复选框的“值”将动态输入到<span>,但我想显示复选框的“名称”而不是“值”, 如果我选中复选框,<span>将显示“周一,周二,周三,周四”等,而不是“1,2,3,4”...... 如何修复我的代码?

3 个答案:

答案 0 :(得分:4)

所以使用:

values.push(this.name); // or $(this).attr('name')

答案 1 :(得分:1)

当您推进$(this).val()阵列时,您只需将$(this).prop('name'))的引用更改为values

请参阅我的小提琴示例:JSFiddle

答案 2 :(得分:-1)

尝试替换

$(this).val() 

$(this).attr('value')