Javascript jquery如何从html表行获取数据
我有下表:Javascript jquery如何从html表行获取数据,javascript,jquery,Javascript,Jquery,我有下表: <table cellspacing="0" cellpadding="0" id="product"> <tr> <th>Name</th> <th>Category</th> <th>Price</th> <th colspan="2">Nr product
<table cellspacing="0" cellpadding="0" id="product">
<tr>
<th>Name</th>
<th>Category</th>
<th>Price</th>
<th colspan="2">Nr products</th>
</tr>
<?php foreach ($productsInStock as $product) : ?>
<tr>
<td><?php echo $product->getName(); ?></td>
<td><?php echo $product->getCategory(); ?></td>
<td><?php echo $product->getPrice().ProductController::coin; ?></td>
<td><?php echo $product->getNrProducts(); ?></td>
<td><button type="submit" value="Delete" class="upload" onclick="deleteDataTable();">Delete</button></td>
<input type="hidden" name="hiddenfieldname" class="hidden" value="<?php echo $product->getId();?>">
</tr>
<?php endforeach; ?>
</table>
每次单击delete按钮后如何获得不同的值最简单的解决方案是将ID作为参数传递给
deleteDataTable()
函数
<td><button type="submit" value="Delete" class="upload" onclick="deleteDataTable(<?php echo $product->getId();?>);">Delete</button></td>
最简单的解决方案是将ID作为参数传递给deleteDataTable()
函数
<td><button type="submit" value="Delete" class="upload" onclick="deleteDataTable(<?php echo $product->getId();?>);">Delete</button></td>
也许您正在寻找:
var x=[];
$('.hidden').each(function(){
x.push($(this).val());
});
x应该包含所有的值。也许您正在查找以下内容:
var x=[];
$('.hidden').each(function(){
x.push($(this).val());
});
x应该包含所有的值。您可以这样做
<table cellspacing="0" cellpadding="0" id="product">
<tr>
<th>Name</th>
<th>Category</th>
<th>Price</th>
<th colspan="2">Nr products</th>
</tr>
<?php foreach ($productsInStock as $product) : ?>
<tr data-productid="<?php echo $product->getId();?>">
<td><?php echo $product->getName(); ?></td>
<td><?php echo $product->getCategory(); ?></td>
<td><?php echo $product->getPrice().ProductController::coin; ?></td>
<td><?php echo $product->getNrProducts(); ?></td>
<td><button type="submit" value="Delete" class="upload" onclick="deleteDataTable();">Delete</button></td>
</tr>
<?php endforeach; ?>
</table>
你可以喜欢
<table cellspacing="0" cellpadding="0" id="product">
<tr>
<th>Name</th>
<th>Category</th>
<th>Price</th>
<th colspan="2">Nr products</th>
</tr>
<?php foreach ($productsInStock as $product) : ?>
<tr data-productid="<?php echo $product->getId();?>">
<td><?php echo $product->getName(); ?></td>
<td><?php echo $product->getCategory(); ?></td>
<td><?php echo $product->getPrice().ProductController::coin; ?></td>
<td><?php echo $product->getNrProducts(); ?></td>
<td><button type="submit" value="Delete" class="upload" onclick="deleteDataTable();">Delete</button></td>
</tr>
<?php endforeach; ?>
</table>
问题是:语境
当你使用
x = $('.hidden')
您将获得类为“hidden”的所有元素.val()
然后从第一个
您需要将隐藏的输入限制为与“删除”按钮位于同一行的输入
不幸的是,您的当前隐藏项实际上不在表中,您有以下情况:
<table><tr>...</tr><tr>..</tr>
<input type="hidden"...>
<input type="hidden"...>
或者,使用上面修改过的html,使用。next
,但我会保留上面的内容
var x = $(this).next(".hidden").val();
问题是:语境
当你使用
x = $('.hidden')
您将获得类为“hidden”的所有元素.val()
然后从第一个
您需要将隐藏的输入限制为与“删除”按钮位于同一行的输入
不幸的是,您的当前隐藏项实际上不在表中,您有以下情况:
<table><tr>...</tr><tr>..</tr>
<input type="hidden"...>
<input type="hidden"...>
或者,使用上面修改过的html,使用。next
,但我会保留上面的内容
var x = $(this).next(".hidden").val();
您可以简单地使用:
<tr>
<td><?php echo $product->getName(); ?></td>
<td><?php echo $product->getCategory(); ?></td>
<td><?php echo $product->getPrice().ProductController::coin; ?></td>
<td><?php echo $product->getNrProducts(); ?></td>
<td>
<button type="submit" value="Delete" class="upload getValue" data-product-id="<?php echo $product->getId();?>">Delete</button>
</td>
</tr>
<script>
$('.getValue').click(function(){
var val = $(this).data('product-id');
});
</script>
您可以简单地使用:
<tr>
<td><?php echo $product->getName(); ?></td>
<td><?php echo $product->getCategory(); ?></td>
<td><?php echo $product->getPrice().ProductController::coin; ?></td>
<td><?php echo $product->getNrProducts(); ?></td>
<td>
<button type="submit" value="Delete" class="upload getValue" data-product-id="<?php echo $product->getId();?>">Delete</button>
</td>
</tr>
<script>
$('.getValue').click(function(){
var val = $(this).data('product-id');
});
</script>
显示您的deleteDataTable
方法。
是
显示您的deleteDataTable
方法的无效子级。
是
的无效子级。您需要添加如何从事件处理程序中的tr
获取数据产品ID
。目前,这只是解释了如何将其放在其他地方,并且在给定此代码var x=$(“tr”).data(“productid”)
时会遇到相同的问题,这是等效的。您需要添加如何从事件处理程序中的tr
获取data productid
。目前,这只是解释了如何将其放在其他地方,如果代码var x=$(“tr”).data(“productid”)
是等效的,则会出现相同的问题。