как я могу найти активный класс (this): .item-name
? Поскольку эти элементы являются динамическими, я использую .find
, но я думаю, что я должен добавить здесь .parent()
.JQuery найти родительский элемент или найти
$(this).find('.item-name').val(customers.product);
HTML:
<tr class="item-row">
<td class="item-name"><div class="delete-wpr"><textarea form ="testinsert" name="item_name[]">Hourly Rate</textarea>
<a class="delete" href="javascript:;" title="Remove row">X</a>
<a class="add-product" href="javascript:;" title="Add Product">O</a>
</div></td>
<td class="description"><textarea form ="testinsert" name="item_desc[]">Business Rate: Consulting/Labor/Installs</textarea></td>
<td><textarea class="cost" form ="testinsert" name="item_cost[]">$150.00</textarea></td>
<td><textarea class="qty" form ="testinsert" name="item_qty[]">3</textarea></td>
<td><span class="price" form ="testinsert" name="item_price[]">$450.00</span></td>
</tr>
JAVASCRIPT:
function populateTableRow($tableBody, data, selectedCustomerAutonum) {
var customers;
$.each(data, function() {
if (this.autonum == selectedCustomerAutonum) {
customers = this;
return false;
}
});
$(this).find('.item-name').val(customers.product);
$(this).find('.item-desc').val(customers.disc);
}
UPDATE (населяет ALL продукта и DESC):
$('.add-product').click(function(){
//$('.add-product').live('click',function(){
// **************************************
$("#productdiv").css("display", "block");
$.ajax({
url: 'product_fill.php',
data: {action:"invoice"},
dataType: 'json',
success: function(data){
populateSelectBoxes($('#productdiv #ddproduct'), data);
function populateSelectBoxes($select, data) {
var products = [];
$.each(data, function() {
products.push('<li data-value="'+this.autonum+'">' + this.product + '</li>');
});
$select.append(products.join(''));
}
function populateTableRow($addProduct, data, selectedCustomerAutonum) {
var customers;
$.each(data, function() {
if (this.autonum == selectedCustomerAutonum) {
customers = this;
return false;
}
});
$addProduct.parents().find("textarea[name^='item_name']").val(customers.product);
$addProduct.parents('.item-row').find("textarea[name^='item_desc']").val(customers.disc);
$addProduct.parents('.item-row').find("textarea[name^='item_cost']").val(customers.rate);
}
$('#productdiv #ddproduct li').click(function(e) {
var selection = $(this).attr("data-value");
$(this).parent().parent().parent().hide();
populateTableRow($('.add-product'), data, selection);
$('ul').empty();
});
}
});
'.find (» item- name ') 'действительно найдет все подходящие элементы-потомки. Хотя y ou're пытается установить * значение * ('.val()') элемента 'td', который * не имеет * значения. Также неясно, что означает «это» в этих строках, итак, где вы даже проводите этот поиск? – David
Я пытаюсь добавить в textarea с именем = item_name [] – BarclayVision