带方括号的选择器不返回对象

时间:2017-08-11 17:00:46

标签: javascript jquery html

在HTML中我有:

<div class="jqtree-element" node-id="5">` 

在JS中我有:

for(var i=1;;i++){
  var object = $('div.jqtree-element[node-id="i"]');
  if(object.length === 0){
    var id = i;
    break;
  }
}

(我正在寻找免费的身份证)

我不知道,为什么它只返回object = [prevObject: r.fn.init(1)]

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

i不是5。使用字符串连接传递正确的属性值以匹配。另外,如果您不希望for循环继续递增i,请将else语句包含在break循环中。

var id;

for (var i = 1; true; i++) {
  var object = $('div.jqtree-element[node-id="' + i + '"]');
  if (object.length === 0) {
    id = i;
    break;
  } else {
    // break loop here
  }
}

console.log(id)

答案 1 :(得分:0)

这里你没有什么问题。

1)您的 i 不是动态的。使用字符串连接,你会没事的。

2)你的病情错了。您应该使用1检查长度,这意味着找到了元素。您正在检查零,i=0本身也是如此。

for(var i=1;;i++){
object = $('div.jqtree-element[node-id="'+i+'"]');
if(object.length === 1){
var id = i;
break;
}
}
console.log(object)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="jqtree-element" node-id="5">