Как использовать регулярное выражение для селектора jquery, чтобы применить некоторый атрибут к элементам? - PullRequest
1 голос
/ 13 марта 2019

У меня есть кнопка редактирования, которая должна сделать содержимое этой таблицы редактируемым.Идентификатор кнопки и класс выглядят следующим образом.

id="edit_icon_'.$row1["client_id"].'_'.$row2["project_id"].'"
class="editbtn"

Id зависит от значений в дБ.Нажав на эту кнопку, я хочу, чтобы все элементы таблицы «только одна таблица» были доступны для редактирования ..

<tr>
    <td id="edit_elem_'.$row2["project_id"].'_'.$row3["detail_id"].'">'.$row3["elements"].'</td>
    <td id="edit_respon_'.$row2["project_id"].'_'.$row3["detail_id"].'">'.$row3["responsibilty"].'</td>
    <td id="edit_remark_'.$row2["project_id"].'_'.$row3["detail_id"].'">'.$row3["remarks"].'</td>
</tr>

Вот как выглядят строки таблицы .. У всех есть динамические идентификаторы.Как мне написать селекторы с регулярным выражением, чтобы это работало?

$(document).on('click', '.editclick', function() { //entering edit mode
    var str = $(this).attr("id");              // edit_icon_1_124
    var cid = str.replace(/^\D+|\D.*$/g, "");  // 1
    var pid = num = str.replace(/.*\D/g, "");  // 124
    $('').each(function(){                 //  #edit_*_pid_* -expected, *-wildcard
        $(this).attr('contenteditable','true'); 
    });
});

Редактировать: PS У меня несколько таблиц, созданных на одной странице ..

1 Ответ

1 голос
/ 13 марта 2019

Для этого вам не нужен REGEX.Вы можете использовать атрибут data- для хранения идентификатора, который кнопка редактирования предназначена для редактирования.

Кнопка:

<button class='editclick' data-pid="124" data-did="1">Edit</td>

Таблица (добавить класс для каждых did и pid):

<tr>
    <td id="edit_elem_'.$row2["project_id"].'_'.$row3["detail_id"].'" class="p'.$row2["project_id"].' d'.$row3["detail_id"].'">'.$row3["elements"].'</td>
    <td id="edit_respon_'.$row2["project_id"].'_'.$row3["detail_id"].'" class="p'.$row2["project_id"].' d'.$row3["detail_id"].'">'.$row3["responsibilty"].'</td>
    <td id="edit_remark_'.$row2["project_id"].'_'.$row3["detail_id"].'" class="p'.$row2["project_id"].' d'.$row3["detail_id"].'">'.$row3["remarks"].'</td>
</tr>

JavaScript:

$(document).on('click', '.editclick', function() { //entering edit mode
    var cid = $(this).data('did');  // 1
    var pid = num = $(this).data('pid')  // 124
    $("td.d"+did+".p"+pid).attr('contenteditable','true');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...