这是我的代码:
$( "#targetButton" ).click(function() {
$.ajax({
url: './checkcolors.php',
type: 'post',
data: {
url: 'http://www.sportsdirect.com/dunlop-mens-canvas-low-top-trainers-246046?colcode=24604622',
SizeId: '6.5'
},
dataType: 'text',
success: function (data) {
var arr = data.split(',');
arr.forEach(function(id){
$('#' + id.trim()).show();
});
}
});
});
这是一个ajax post函数,如果返回id,则返回一个数字。 返回的ID正在回答我必须显示的div html元素。 这些html div元素具有相同的类,但它们都具有不同的ID。
所以我尝试使用此代码选择具有相同类的所有元素,但不包括带有尖头ID的元素:
$('.ColorImagesNOColor:not(#' + id.trim() + ')').show();
它似乎无法正常工作,因为它显示了具有此类的所有元素,即使使用了不能显示的ID。
你能帮帮我吗?
提前致谢!
答案 0 :(得分:1)
你是在.forEach
循环内完成的。这意味着最后一个$('.ColorImagesNOColor:not(#' + id.trim() + ')').show();
将确定.ColorImagesNOColor
元素的最终可见性。
如果您要显示所有.ColorImagesNOColor
个元素并隐藏已返回ID的元素,那么您可以将第一步移到.forEach
循环之前:
// Show all initially
$('.ColorImagesNOColor').show();
// Hide ones with certain Id's
arr.forEach(function(id){
$('#' + id.trim()).hide();
});