Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery如何从html表行获取数据_Javascript_Jquery - Fatal编程技术网

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”)
是等效的,则会出现相同的问题。