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
}