Javascript I';我没有从表行中通过jquery中的id获取特定值,它显示';未定义';

Javascript I';我没有从表行中通过jquery中的id获取特定值,它显示';未定义';,javascript,html,jquery,node.js,express,Javascript,Html,Jquery,Node.js,Express,我试图在单击“添加到购物车btn”时从表行捕获值。桌子在这儿 身份证件 名称 可利用性 价格 类别 类型 小贩 手柄 在表定义之后不必使用jquery代码。 通过在表中添加onclick函数,可以获得包含所单击按钮的行的id。 只要使用循环创建表,就知道模板中的id。 请尝试将添加到html中的onclick=“”。 对不起,我不是方面的专家,您不必在表定义之后使用jquery代码。 通过在表中添加onclick函数,可以获得包含所单击按钮的行的id。 只要使用循环创建表,就知道模板中的id

我试图在单击“添加到购物车btn”时从表行捕获值。桌子在这儿


身份证件
名称
可利用性
价格
类别
类型
小贩
手柄

在表定义之后不必使用jquery代码。 通过在表中添加onclick函数,可以获得包含所单击按钮的行的id。 只要使用循环创建表,就知道模板中的id。 请尝试将
添加到html中的
onclick=“”

对不起,我不是方面的专家,您不必在表定义之后使用jquery代码。 通过在表中添加onclick函数,可以获得包含所单击按钮的行的id。 只要使用循环创建表,就知道模板中的id。 请尝试将
添加到html中的
onclick=“”
。 对不起,我不是方面的专家,请遵循以下步骤:

  • 只需在您的
    td
    按钮上添加一个点击事件
  • 通过
    $(this.recest(“tr”))查找所单击按钮的最近行
  • 使用
    $row.Find(“td:nth child(1)”).text()从行中查找特定单元格
    ,这里的第一个子项是id,因此
    td:n子项(1)
  • $(“#btn”)。单击(函数(){
    var$row=$(this).closest(“tr”);//查找该行
    var$text=$row.find(“td:nth-child(1)”).text();//查找文本
    警报(文本);
    });
    
    
    身份证件
    名称
    可利用性
    价格
    类别
    类型
    小贩
    手柄
    1.
    纳帕
    10
    20
    帕拉西他莫
    B
    基础知识
    
    遵循以下步骤:

  • 只需在您的
    td
    按钮上添加一个点击事件
  • 通过
    $(this.recest(“tr”))查找所单击按钮的最近行
  • 使用
    $row.Find(“td:nth child(1)”).text()从行中查找特定单元格
    ,这里的第一个子项是id,因此
    td:n子项(1)
  • $(“#btn”)。单击(函数(){
    var$row=$(this).closest(“tr”);//查找该行
    var$text=$row.find(“td:nth-child(1)”).text();//查找文本
    警报(文本);
    });
    
    
    身份证件
    名称
    可利用性
    价格
    类别
    类型
    小贩
    手柄
    1.
    纳帕
    10
    20
    帕拉西他莫
    B
    基础知识
    
    您可以使用数据属性,使用按钮类作为选择器

    <input type="submit" id="btn" class="btn btn-secondary btn-submit" value="Add to Cart" data-id='<%= medicines[i].id %>' >
    
    或者找到单击的行并获取
    id

    $(".btn-submit").click(function () {
        var id = $(this).closest('tr').find(":first").text();
                console.log(id);
         });    
    
    您可以使用数据属性,使用按钮类作为选择器

    <input type="submit" id="btn" class="btn btn-secondary btn-submit" value="Add to Cart" data-id='<%= medicines[i].id %>' >
    
    或者找到单击的行并获取
    id

    $(".btn-submit").click(function () {
        var id = $(this).closest('tr').find(":first").text();
                console.log(id);
         });    
    

    当我将代码更改为下面的代码时,它工作得很好。我意识到,箭头功能不适合我

    
    $(文档).ready(函数(){
    $(“#btn”)。单击(函数(){
    var行=$(此).tr;
    var col=row.find(“#id”).text();
    警报(col);
    });
    });
    
    当我将代码更改为下面的代码时,它工作正常。我意识到,箭头功能不适合我

    
    $(文档).ready(函数(){
    $(“#btn”)。单击(函数(){
    var行=$(此).tr;
    var col=row.find(“#id”).text();
    警报(col);
    });
    });
    
    技术上不允许在DOM中有多个具有相同ID的元素,您将拥有这些元素。这在实践中通常不是一个问题,但也许你已经发现了一个问题所在。使用类而不是ID。@Saqib,有任何解决方案对您有效吗?@ShahnawazHossan是的,我使用了箭头函数,但它不起作用。相反,使用了normal function(){},它的工作非常神奇。@Saqib,可能有助于您更好地理解正则函数和arrow函数之间的区别。顺便说一句,您可以选择在您的情况下哪一个是最好的。技术上不允许在DOM中有多个具有相同ID的元素,您将拥有这些元素。这在实践中通常不是一个问题,但也许你已经发现了一个问题所在。使用类而不是ID。@Saqib,有任何解决方案对您有效吗?@ShahnawazHossan是的,我使用了箭头函数,但它不起作用。相反,使用了normal function(){},它的工作非常神奇。@Saqib,可能有助于您更好地理解正则函数和arrow函数之间的区别。顺便说一下,你可以知道哪一个对你来说是最好的。