jQuery选择所有孩子

时间:2013-05-28 21:38:22

标签: javascript jquery json local-storage css-selectors

我为用户构建了一个小应用程序来请求构建机器。我通过在提交表单时将详细信息保存到localStorage,然后循环存储变量以显示请求的详细外观来执行此操作。此操作的显示部分循环通过本地存储并附加ul每个特定机器的每条信息的li输入。

下面是一个粗略的例子,说明我的显示在提交前最终看起来像什么。我需要选择每个input的值,并在localStorage.Removeitem('all machine 1 input values go here');中使用它。我为粗略的代码道歉,我是大部分新手。

<ul name="machine-1">
    <li><input type="button" value="Del"></li>
    <li><input value="name1"></li>
    <li><input value="number1"></li>
</ul>

<ul name="machine-2">
    <li><input type="button" value="Del"></li>
    <li><input value="name2"></li>
    <li><input value="number2"></li>
</ul>

继承我构建列表的循环部分。

$("#theRequest").append('<ul id="machine-'+ machinec +'"><li style="border:none;margin-left:0em;padding-right:0em;"><input class="delete" type="button" id="del-'
    + machinec +'" value="Del"></li><li>'
    + '</li><li style="border:none;margin-left:0em;padding-right:0em;"><input class="edit" type="hidden" value="Edit"></li>'
    + '</li><li><input style="width:35px;" disabled type="text" value="'
    + nomember + '"></li><li><input style="width:20px;" disabled type="text" value="'
    + ecmpny + '"></li><li><input style="width:20px;" disabled type="text" value="'
    + estore + '"></li><li><input style="width:60px;" disabled type="text" value="'
    + hmachineType + '"></li><li><input disabled type="text" value="'
    + efullname + '"></li><li><input disabled type="text" value="'
    + etitle + '"></li><li><input disabled type="hidden" value="'
    + hrequested + '"></li><li><input disabled type="hidden" value="'
    + eemail + '</li></ul>');

以下是我对如何“删除”特定计算机并将其从localStorage中清除的猜测。我基本上没有选择它,如果我是,我仍然认为它只会选择一个孙子的价值观?

// Delete a Machine
$('.delete').click(function() {
    if (confirm('Are you sure you want to remove this item?')) {
        var parent = $(this).parents('ul');
        var grandchildren = parent.children().children();
        parent.hide();
        inputName = grandchildren.attr('value');
        localStorage.removeItem(inputName);                     
    }                           
    else {}
});

1 个答案:

答案 0 :(得分:1)

我会尝试这样的事情

// Delete a Machine
$('.delete').click(function() {
    if (confirm('Are you sure you want to remove this item?')) {
        var parent = $(this).parents('ul').eq(0);  // just in case you have more than one ul ancestor
        parent.hide();
        parent.find('input').each(function() {
            localStorage.removeItem($(this).attr('value'));
        });                    
    }
});

顺便说一句,如果您使用的是jQuery 1.7或更高版本,则可以使用$('.delete').on("click", function() {

相关问题