Показать кнопку, если строка в HTML-таблице == что-то с Javascript - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь отобразить кнопку x, только если электронная почта == адрес электронной почты текущего пользователя с использованием javascript.

my table

Вот как я заполняютаблица

            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>

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

При построении массива вы можете переключать эту конкретную кнопку:

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>
0 голосов
/ 27 сентября 2018

Заключенный в кавычки mymail@gnail.com.Я также добавил оператор if между добавлением td, который сначала проверяет, соответствуют ли они жестко закодированному письму.

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>
...