Извлечение чисел из родительского атрибута в jQuery
-
22-09-2019 - |
Вопрос
Нажав на "mylink", я хочу, чтобы ссылка была заменена номером "123", который извлекается из родительского тега.Я думаю, что я не делаю ".match(...." правильно.
jQuery - jQuery - запрос:
$(document).ready(function(){
$(".link").click(function(){
var comid = $(this).parents("div.comment").attr("class").match(/comment-([0-9]+)/)[1];
$(".link").replaceWith(comid);
});
});
HTML:
<div class="comment comment-123 ct">
<div class="link">mylink</div>
</div>
Решение
У вас есть только одно совпадение, поэтому вам нужно использовать 0-е совпадение (массив на основе нуля).Кроме того, он вернет полное совпадение, поэтому, если вам нужен только номер, вам нужно будет удалить comment-
текст из него.
$(document).ready(function(){
$(".link").click(function(){
var comid = $(this).parents("div.comment")
.attr("class")
.match(/comment-[0-9]+/)[0]
.replace('comment-','');
$(".link").replaceWith(comid);
});
});
Если есть вероятность, что совпадения не произойдет, то вы хотели бы присвоить совпадения переменной и выполнять замену (ы) только в том случае, если совпадение происходит (переменная не равна нулю).
Не связан с StackOverflow