Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数组用作类过滤器,以检查元素是否具有在该数组中找到的类_Javascript_Jquery_Html_Arrays_Class - Fatal编程技术网

Javascript 将数组用作类过滤器,以检查元素是否具有在该数组中找到的类

Javascript 将数组用作类过滤器,以检查元素是否具有在该数组中找到的类,javascript,jquery,html,arrays,class,Javascript,Jquery,Html,Arrays,Class,我知道这听起来有点混乱。 以下是我想做的: 我有五张照片, 每个图片都有一组类, 每次单击其中一张图片时,id(与类名相同)将被推入数组 最后,我只想显示图片,如果它们包含在该数组中找到的相同类(id) <div id="cameras" class="row text-center "> <div id="d5" class=" professional landscape wedding micro sportaction wildlife portrait as

我知道这听起来有点混乱。 以下是我想做的:

我有五张照片, 每个图片都有一组类, 每次单击其中一张图片时,id(与类名相同)将被推入数组

最后,我只想显示图片,如果它们包含在该数组中找到的相同类(id)

<div id="cameras" class="row text-center ">

    <div id="d5" class=" professional landscape wedding micro sportaction wildlife portrait astrophotographer cameras">
        <div class="thumbnail">
            <img src="images/d5.png" alt="D5">

        </div>
    </div>

    <div id="d810a" class=" professional landscape astrophotographer portrait micro cameras">
        <div class="thumbnail">
            <img src="images/d810a.png" alt="D3300">

        </div>
    </div>

    <div id="d810" class=" professional landscape wedding micro portrait cameras">
        <div class="thumbnail">
            <img src="images/d810.png" alt="D810">

        </div>
    </div>

    <div id="d750" class=" enthusiast landscape wedding micro sportaction wildlife portrait astrophotographer cameras">
        <div class="thumbnail">
            <img src="images/D750.png" alt="D750">
        </div>
    </div>
</div>
$('#sportaction').on('click', function () {

 if ($("#sportaction").attr('data-click-state') == 1) {
     $(this).attr('data-click-state', 0);

     $("#snaButton").css({ fill: "#00725C" });

 } else {
     $(this).attr('data-click-state', 1);

     $("#snaButton").css({ fill: "#00A388" })

 }

});
$("#finish").click(function() {
 $("[data-click-state= '0' ]").each(function () {
    type_array.push($(this).attr("id"));

    //some.push(this.id);
    });
 });

$('#sportaction')。在('单击',函数(){
if($(“#sportaction”).attr('data-click-state')==1){
$(this.attr('data-click-state',0);
$(“#snaButton”).css({fill:#00725C});
}否则{
$(this.attr('data-click-state',1);
$(“#snaButton”).css({fill:#00A388})
}
});
$(“#完成”)。单击(函数(){
$(“[数据单击状态='0']”)。每个(函数(){
键入数组.push($(this.attr(“id”));
//some.push(this.id);
});
});
例如:如果我点击“发烧友”和“风景”,只有d750会出现

下面的代码不起作用

$(".cameras").each(function () {
    $(this).hide();
    for (var i = 0; i < type_array.length; i++) {
        if ($(this).hasClass(type_array[i])) {
            $(this).show();

        }
    }
});
$(“.cameras”)。每个(函数(){
$(this.hide();
对于(var i=0;i
我不知道我是否正确理解了您的问题,但试试这个

var type_array = [];
$(".cameras").click(function() {
    var classArray = $(this).attr('class').split(/\s+/);
    $.each(classArray, function() {
        if (this.length > 0 && this != "cameras" && type_array.indexOf(this) == -1) {
            type_array[type_array.length] = this + "";
        }
    })
})        
在其他地方:

    $(".cameras").each(function () {

    $(this).hide();
    var clicked = this;
      var hasAllClasses = true;
    $.each(type_array,function(){
       if($(clicked).hasClass(this)){
          return true;
       }
         hasAllClasses=false;
         return false;
    });
     if(hasAllClasses===true){
    $(clicked).show();
     }

});
type_array=[];

我不知道我是否正确理解了你的问题,但试试这个

var type_array = [];
$(".cameras").click(function() {
    var classArray = $(this).attr('class').split(/\s+/);
    $.each(classArray, function() {
        if (this.length > 0 && this != "cameras" && type_array.indexOf(this) == -1) {
            type_array[type_array.length] = this + "";
        }
    })
})        
在其他地方:

    $(".cameras").each(function () {

    $(this).hide();
    var clicked = this;
      var hasAllClasses = true;
    $.each(type_array,function(){
       if($(clicked).hasClass(this)){
          return true;
       }
         hasAllClasses=false;
         return false;
    });
     if(hasAllClasses===true){
    $(clicked).show();
     }

});
type_array=[];

请显示更多代码,至少单击处理程序。这些图片没有任何类别。“例如:如果我点击“爱好者”和“景观”,应该只显示d750。”所有
.html
中的
缩略图
元素似乎都有
类名
“景观”
?谢谢,添加了更多代码请显示更多代码,至少点击处理程序是这样的。这些图片没有任何类别。“例如:如果我单击“爱好者”和“景观”,应该只显示d750。”所有
.html
上的
缩略图
元素似乎都有
类名
“景观”
?谢谢,添加了更多代码谢谢您的帮助,但是我需要有不止一门课,例如,如果我点击“狂热者和运动行动”,d750是唯一一个有这两个属性的课程。检查谢谢你,苏,对不起,我不知道它是否按照你需要的方式工作,但我现在必须离开,我会稍后回来,所以如果没有其他人帮助你,我会试着在完成后展示所有的图片,而不是我们想要的课程。大学教师;i don’我不知道我是否做错了,请现在检查,但所有图像都将始终可见,因为它们有共同的类“景观”,尝试删除一些类,只留下少数类来检查它是否有效谢谢您的帮助,但我需要能够有多个类,例如,如果我单击“爱好者和运动行动”d750是唯一一款具有这两个属性的机型。谢谢你,苏女士对不起,我不知道它是否按照你需要的方式工作,但我现在必须离开,我稍后会回来,所以如果没有其他人帮助你,我会在完成后试一试。它会显示所有图片,而不是我们想要的课程。大学教师;i don’我不知道我是否做错了什么,请现在检查,但所有图像都将始终可见,因为它们有共同的类“景观”,请尝试删除一些类,只留下一些类来检查它是否有效