Я пытаюсь создать новые строки, когда установлен флажок checkbox. Я пробовал использовать .after()
и .insertAfter()
безрезультатно.Как добавить новую строку таблицы?
Может кто-нибудь указать мне в правильном направлении?
http://jsfiddle.net/uf0jhd9w/c
HTML:
<tr class="itemSize">
<td>
<span class="danger">*</span><label for="itemSize">Product Sizes:</label>
</td>
<td>
<label for="extra_small">XS</label><input type="checkbox" name="extra_small" id="extra_small" value="XS">
<label for="small">S</label><input type="checkbox" name="small" id="small" value="S">
<label for="medium">M</label><input type="checkbox" name="medium" id="medium" value="M">
<label for="large">L</label><input type="checkbox" name="large" id="large" value="L">
</td>
</tr>
JQuery:
$('#extra_small,#small,#medium, #large, #extra_large').on('change',function(){
var $sizeTr = $('.itemSize');
if(this.checked){
console.log("checked");
var size = $(this).attr("id");
var html =
'<tr class="'+size+'_quantity">'+
'<td>'+
'<span class="danger">*</span><label for="itemQuantity">'+size+' Stock Quantity:</label>'+
'</td>'+
'<td>'+
'<input type="number" min="1" name="itemQuantity" placeholder="Enter Product Quantity" value=""/>'+
'</td>'+
'</tr>';
//$('.itemSize').after(html);
$(html).insertAfter($sizeTr);
//console.log($(html));
}else{
$('tr.'+size+'_quantity').hide();
}
});
работает для меня, как только у вас есть полный стол для работы с (то есть вас вычеркнуто '
Спасибо, я немного погубил и нашел свою ошибку. Мне пришлось принять var size = $ (this) .attr ("id"); из заявления if, и он начал работать для меня! – user875139