2017-08-11 3 views
0

を返していない私が持っている:セレクタは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; 
    } 
} 

(私は自由のIDを探しています)

私は知らない、なぜそれが返すだけobject = [prevObject: r.fn.init(1)]

任意のアイデア?

答えて

1

i5ではありません。文字列の連結を使用して、一致する正しい属性値を渡します。また、forのループがのインクリメントを続けると予想されない場合は、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) 
0

ここではほとんど問題がありません。

1)は動的ではありません。文字列の連結を使用して、あなたは大丈夫でしょう。

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">

関連する問題