2017-01-05 5 views
0

Предполагается, что это корзина для покупок, основанная на jeasyui.com. У меня есть три проблемы.Получите значение поля ввода, расположенного внутри таблицы jQuery

  1. Я не могу получить значение количества, когда оно было изменено в поле ввода.
  2. Когда я удаляю предмет из корзины, эта услуга должна быть снова доступна на соответствующей вкладке.
  3. Услуги получают отступы для каждой новой вкладки. Мне нужно, чтобы они начинались с самого начала каждый раз.

Это код, который у меня есть до сих пор: codepen.io. Извините, если это грязно, это мой первый опыт работы с javascript/jquery. Любая помощь приветствуется. Спасибо!

function removeProduct(el) { 
var name1 = $(el).closest('tr').find('td').eq(0).text(); 
var price1; 
for (var i = 0; i < data.length; i++) { 
    if (name1 == data[i][0]) { 
    price1 = data[i][2]; 
} 
    var className = $(el).parent().attr('class'); 
    /**Add a new list item in item class with the class name and the service name and price in paragraphs.*/ 
    $(el).closest('tr').remove(); 
} 
} 

function changeQuantity(el) { 
var name1 = $(el).closest('tr').find('td').eq(0).text(); 
var quantity1 = $(el).closest('tr').find('td').eq(1).value; 
var price1; 
for (var i = 0; i < data.length; i++) { 
    data[i][1] = quantity1; 
    data[i][2] = price * quantity1; 
    if (name1 == data[i][0]) { 
    price1 = data[i][2]; 
    } 
} 
$(el).closest('tr').find('td').eq(1).html("<input type='number' value='" + quantity1 + "' style='width:100%;'>"); 
$(el).closest('tr').find('td').eq(3).html(price1); 
} 

ответ

0

Чтобы получить количество сделать:

$(el).closest('tr').find('td').eq(1).find('input').val(); 

Потому что вы физически удаление элемента из DOM с source.remove(); вы не можете легко. Я бы предложил добавить класс к элементу, который скроет его. А затем, когда вы удалите его с карты, удалите этот класс.

Для вашего третьего вопроса, удалить CSS, который скрывает классы продуктов и вместо того, чтобы добавить это:

Снимите:

.Biostatistics { 
    display: none; 
} 
.ClinicalLaboratory { 
    display:none; 
} 
.Something{ 
    display:none; 
} 

Добавить:

.Products li { 
    display: none; 
} 

также изменить JS быть (добавление ближайшего («li»):

x[i].closest('li').style.display = 'none'; 
+0

Большое вам спасибо за помощь! Мне было интересно, как получить имя класса ближайшего родительского класса к удаляемому элементу. Например, если я перетаскиваю Biostats Service, я хочу получить «Biostatistics». Если я использую «$ (source) .attr ('class')», в функции onDrop я получаю «item» вместо «Biostatistics», – Intelli

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