2013-05-28 2 views
1

Я создал небольшое приложение для пользователя, чтобы запросить машины, которые будут созданы. Я делаю это, сохраняя специфику в localStorage, когда форма отправляется, а затем циклически перебирает переменные хранилища, чтобы отобразить подробный вид запроса. Часть отображения этого цикла проходит через локальное хранилище и добавляет ul с входом li для каждая из частей информации, относящихся к каждой конкретной машине.jQuery выбрать все дети

Ниже приводится пример того, как мой дисплей заканчивается, как прямо перед подачей. Мне нужно выбрать значение каждого 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> 

Heres часть моей петли, которая строит списки.

$("#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

Я хотел бы попробовать что-то вроде этого

// 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() {

+0

Работает отлично, спасибо много! .each работает отлично. –

+0

Без проблем, рад, что это помогло – Klors

Смежные вопросы