Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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 JQuery遍历类,然后比较属性并确定是否找到匹配项_Javascript_Jquery - Fatal编程技术网

Javascript JQuery遍历类,然后比较属性并确定是否找到匹配项

Javascript JQuery遍历类,然后比较属性并确定是否找到匹配项,javascript,jquery,Javascript,Jquery,基本上,我试图检查是否已经创建了某个对象,以及该对象是否具有指定的属性值 因此,我基本上是在寻找所有的$('.item')类,在本例中,这些项有一个类似data value=“1”的属性,html中的每个项对此属性都有一个唯一的值,例如: <div class="item" data-value="1">Item 1</div> <div class="item" data-value="2">Item 2</div> <div class=

基本上,我试图检查是否已经创建了某个对象,以及该对象是否具有指定的属性值

因此,我基本上是在寻找所有的
$('.item')
类,在本例中,这些项有一个类似
data value=“1”
的属性,html中的每个项对此属性都有一个唯一的值,例如:

<div class="item" data-value="1">Item 1</div>
<div class="item" data-value="2">Item 2</div>
<div class="item" data-value="3">Item 3</div>
因此,理论上,按钮1、按钮2和按钮3将通过测试,并且不会创建新项目。但是,按钮4将无法通过检查并创建一个新项目


但是我不能让支票生效我怎么办呢?

你可以这样做:

$("input[type=button]").click(function () {
    if($("div[data-value='"+ $(this).data("value") +"']").length == 0 ){
        // create new item
    }
});
更新

请执行以下操作:

var itemClicked = $(this);

var createIem = function(){
    //enter code here
};

var findItem = $('.item').each(function() {
  if ($(this).attr('data-value') == itemClicked.attr('data-value')) {
    createIem();
  }
});
复制一下:

var itemClicked = $(this);
var findItem = ($('.item[data-value="' + itemClicked.attr('data-value') + '"]').length > 0 );
if (!findItem) {
  // create new item
}

如果你继续这样做的话,你就要创建一个循环了。因为它什么时候会停止?它会一直持续下去,对吗?事实上,我试着作为一个条件,但我不知道怎么做…$(this).attr('data-value')==itemClicked.attr('data-value')??当itemClicked=$(这个)时??怎么会呢?如果你知道什么时候该停止,就用FOR循环。对于(var i=0;i>5;i++){//create here}我使用了这个,但它不断地创建项目:(太棒了。希望这也能帮助其他类似场景的人。谢谢@Mathieu
var itemClicked = $(this);

var createIem = function(){
    //enter code here
};

var findItem = $('.item').each(function() {
  if ($(this).attr('data-value') == itemClicked.attr('data-value')) {
    createIem();
  }
});
var itemClicked = $(this);
var findItem = ($('.item[data-value="' + itemClicked.attr('data-value') + '"]').length > 0 );
if (!findItem) {
  // create new item
}