Вставьте значки в третий тд пока два тд пустые - PullRequest
0 голосов
/ 14 мая 2019

Мне нужна помощь с jQuery для вставки двух значков в td id = "person-action - {{person.id}}" , в то время как два дальнейших tds с тем же {{person.id}} пусто, например,

<td id="person-phone-{{ person.id }}"></td>
<td id="person-email-{{ person.id }}"></td>
<td id="person-action-{{ person.id }}"></td>

Я только что сделал несколько простых кодов.

    $(document).ready(function(){
        var emptyPhone = $('#person-phone-{{ person.id }}').is(':empty')
        var emptyEmail = $('#person-email-{{ person.id }}').is(':empty')
        $('#person-action-{{ person.id }}').each(function(){
            if (emptyPhone || emptyEmail ){
             // do something
            }
        });
    });

РЕДАКТИРОВАТЬ: Благодаря замечательным советам @wiertelЯ нажал на свой код, и теперь мне интересно, как добавить что-то в это # ​​person-action, где в текущем tr есть пустые ячейки телефона и электронной почты.Я пытался сделать что-то с кодом ниже:

    $(document).ready(_ => {
      $('#addressTab tbody tr').each((i, el) => {
        tr = $(el);
        id = tr.data('person-id');
        empty_phone = tr.find('#person-phone').is(':empty');
        empty_email = $('#person-email', tr).is(':empty');
        if (empty_phone && empty_email){
            $('#person-action').append("<i class='small material icons'>delete</i>");
        }
  });
});

Фактический результат: 1] Ожидаемый результат: 2]

1 Ответ

1 голос
/ 14 мая 2019

Вы должны знать, как выглядит HTML, сгенерированный из шаблона.Я совершенно уверен, что при выполнении вашего кода JS на странице нет фрагмента {{ person.id }}.

Вы оцениваете emptyPhone и emptyEmail один раз, а затем повторно используете значение для каждого элемента, найденногоJQuery.Это не то, что вам нужно.

Я предлагаю:

  • использовать класс, назначенный <tr>, к которому <td> принадлежит, и сохранить там идентификатор (<tr class="userInfoRow" data-user-id="{{person.id}}">)
  • таким образом вы сможете найти все элементы, используя jQuery ($("tr.userInfoRow"))
  • , как только вы их найдете, переберите их, извлеките идентификатор пользователя и проверьте каждый элементотдельно
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...