如果 html 表中的字符串 == 带有 Javascript 的内容,则显示按钮

Posted

技术标签:

【中文标题】如果 html 表中的字符串 == 带有 Javascript 的内容,则显示按钮【英文标题】:Show button if string in html table == something with Javascript 【发布时间】:2019-03-03 07:27:18 【问题描述】:

我仅在电子邮件 == 使用 javascript 的当前用户电子邮件地址时才尝试显示 x 按钮。

这就是我填充表格的方式

            var user = mymail@gnail.com
            function getOrders() 
                $.ajax(
                    type: "get",
                    url: "http://127.0.0.1:9000/get-orders",
                    success: function (data) 
                        response = data["code"];
                        data = data["data"];
                        var dataArray = data.orders;

                        for (var i = 0; i < dataArray.length; i++) 
                            tr = $('<tr/>');
                            tr.append("<td>" + "<button id='cancelOrderButton;'>X</button>" + "</td>");
                            tr.append("<td>" + dataArray[i].room + "</td>");
                            tr.append("<td>" + dataArray[i].user + "</td>");
                            tr.append("<td>" + dataArray[i].real_name + "</td>");


                            $('.table1').append(tr);
                        ;
                    
                );
            ;

这是 html

                <table class="table1">
            <tr>
                <th></th>
                <th>Room</th>
                <th>Email</th>
                <th>Name</th>
            </tr>
        </table>

【问题讨论】:

当前用户的电子邮件存储在哪里? 现在它只是硬编码。稍后它会从后端获取它 那么你的问题到底是什么?它应该像比较变量/字符串一样简单:if(current_email === dataArray[i].user...) 在循环中,如果匹配,则追加按钮 tr.append("&lt;td&gt;" + (user === dataArray[i].user) ? "&lt;button...&gt;X&lt;/button&gt;" : "" + "&lt;/td&gt;"); 【参考方案1】:

用引号将 mymail@gnail.com 括起来。我还在 td 的附加之间添加了一个 if 语句,它首先验证它们是否与硬编码的电子邮件匹配。

if (dataArray[i].user == currentUser) 
  tr.append("<td>" + "<button id='cancelOrderButton;'>X</button>" + "</td>");
else
  tr.append("<td></td>");

var currentUser = 'mymail@gnail.com'

function getOrders() 
  $.ajax(
    type: "get",
    url: "http://127.0.0.1:9000/get-orders",
    success: function(data) 
      response = data["code"];
      data = data["data"];
      var dataArray = data.orders;

      for (var i = 0; i < dataArray.length; i++) 
        tr = $('<tr/>');
        if (dataArray[i].user == currentUser) 
          tr.append("<td>" + "<button id='cancelOrderButton;'>X</button>" + "</td>");
         else 
          tr.append("<td></td>");
        
        tr.append("<td>" + dataArray[i].room + "</td>");
        tr.append("<td>" + dataArray[i].user + "</td>");
        tr.append("<td>" + dataArray[i].real_name + "</td>");


        $('.table1').append(tr);
      ;
    
  );
;
<table class="table1">
  <tr>
    <th></th>
    <th>Room</th>
    <th>Email</th>
    <th>Name</th>
  </tr>
</table>

【讨论】:

感谢您的帮助!将 if (data[i].user == currentUser) 替换为 if (dataArray[i].user == currentUser) 并删除了第二个 tr.append("" + "" + ""); 根据您的评论更正了 if 语句。 Np,祝项目好运。【参考方案2】:

在构造数组时,您可以切换该特定按钮:

for (var i = 0; i < dataArray.length; i++)     
    var tr = $('<tr/>'),
        buttonTd = $('<td/>'),
        xButton = $('<button/>').attr(id, 'cancelOrderButton' + i).value('X').hide();

    tr.append(buttonTd.append(xButton));
    tr.append("<td>" + dataArray[i].room + "</td>");
    tr.append("<td>" + dataArray[i].user + "</td>");
    tr.append("<td>" + dataArray[i].real_name + "</td>");

    $('.table1').append(tr);
    if (user === dataArray[i].user) xButton.show();
;          

HTML

<table class="table1">
    <tr>
        <th>Action</th>
        <th>Room</th>
        <th>Email</th>
        <th>Name</th>
    </tr>
</table>

【讨论】:

以上是关于如果 html 表中的字符串 == 带有 Javascript 的内容,则显示按钮的主要内容,如果未能解决你的问题,请参考以下文章

在带有重音字母的语言中转义 HTML

Java

带有“åäö”的 Linq 查询返回表中的所有项目

如何使用数组将带有数据的行添加到html表中,函数部分工作

如何将mysql数据库表中的内容显示在Web页面中,用啥软件实现呢?

java 取Excel带有小数点数据,不能取完整,只能取小数点的后面2位,怎么解决?