jQuery - 如何选择具有相同类但不具有特定ID的所有元素

时间:2015-08-20 14:44:02

标签: javascript jquery html

这是我的代码:

$( "#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。

你能帮帮我吗?

提前致谢!

1 个答案:

答案 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();
});