gpt4 book ai didi

javascript - 循环遍历数组时,如何从符合特定条件的元素中添加/删除类?

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

下面我有循环遍历项目列表的代码,如果 element.hazardous == no,我想从 div class item-left 中删除一个“hazardous”类。我现在设置的方式不起作用,我想知道这是否可能是因为我需要找到一种方法来针对特定的非危险阵列元素。

“危险”在我的 CSS 中的作用是,如果危险类别处于事件状态,它会添加一个实心红色边框。否则隐藏红色边框。

function showProducts(items) {
var itemsHTML = [];
items.forEach(function(element) {
var url = element.url ? element.url : 'http://placehold.it/100x100'
itemsHTML.push('<li><div class="item-left hazardous" data-product-id="' + element.id + '"><p><span class = "prod-name">' +
'Product: ' + element.product + '</p></span><span class="prod-loc">' +
'Location: ' + element.location + '</span><span class="qty">' +
'Quantity: ' + element.quantity + '</span></div>' +
'<div class="item-right"><img src="' + url + '"></div></li>')
if (element.hazardous == 'no') {
$('.item-left').removeClass('hazardous')
}
});
$('.results').html(itemsHTML)
}

最佳答案

不要首先对 hazardous 类进行硬编码,而是在标记渲染到 DOM 之前有条件地应用它:

function showProducts(items) {
var itemsHTML = [];
items.forEach(function(element) {
var classes = ['item-left', element.hazardous === 'no' ? '' : 'hazardous'].join(' ').trim()
var url = element.url ? element.url : 'http://placehold.it/100x100'
itemsHTML.push('<li><div class="' + classes + '" data-product-id="' + element.id + '"><p><span class = "prod-name">' +
'Product: ' + element.product + '</p></span><span class="prod-loc">' +
'Location: ' + element.location + '</span><span class="qty">' +
'Quantity: ' + element.quantity + '</span></div>' +
'<div class="item-right"><img src="' + url +
'"></div></li>')
});
$('.results').html(itemsHTML)

您面临的问题之一是您试图从尚不存在的 DOM 元素中删除一个类 - 此时它仍然是一个字符串。

关于javascript - 循环遍历数组时,如何从符合特定条件的元素中添加/删除类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45405415/

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