gpt4 book ai didi

javascript - 动态按钮 ID - Javascript

转载 作者:行者123 更新时间:2023-12-03 00:02:35 25 4
gpt4 key购买 nike

我有许多从 for 循环生成的按钮,如下所示,id = 如下:

<button type="submit" id = "like" class="btn btn-custom btn-sm like"><span id="tx-like">Like</span></button>

我有一个脚本,可以将“like”更改为“unlike”,将“unlike”更改为“like”,它通过Id获取元素:

$( function() {
$('#like').click( function() {
var t = $("#tx-like").html();
if(t == 'Like'){
$("#tx-like").html("Unlike");
}else{
$("#tx-like").html("Like");
}
} );
} );

这仅在第一个按钮上起作用,因为它获取了 id。如何让它在所有动态生成的按钮上发挥作用?

最佳答案

正如上面评论中所说,同一页面中不应有多个 ID。您可以使用类来代替,但即使它可以工作,还有一个更好的方法,那就是使用数据属性

// Retrieves all your elements using the `data-like` attribute.
const likes = document.querySelectorAll('[data-like]');

// For each element as `el`
likes.forEach(el => {
el.addEventListener('click', () => {

// Get its `data-like` value.
const { like } = el.dataset;

// If the value is 'false':
if (like === 'false') {
el.innerText = 'Dislike';
el.dataset.like = 'true';
return;
}

// Else...
el.innerText = 'Like';
el.dataset.like = 'false';
});
});
/* You can easily customize your elements according to their current state. */

.like[data-like="true"] {
border: solid 1px green;
}

.like[data-like="false"] {
border: solid 1px red;
}
<!-- Remove duplicate IDs and use `data-like` instead. -->
<button type="submit" class="btn btn-custom btn-sm like" data-like="false">Like</button>
<button type="submit" class="btn btn-custom btn-sm like" data-like="false">Like</button>

关于javascript - 动态按钮 ID - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55110108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com