2016-11-27 7 views
-1

私は動的に複数のdivを作成しました。そのうちいくつかに値10のmine-dataという属性IDをランダムに割り当てました。属性 'mine-data'を持つdivを探し、trueを返します。それは動作しません。私は似たような質問を見てきました。 どのように動作させるか考えてみましょうか?attr jqueryの値を取得する方法

+0

を確認してください。 –

+0

コンソールログattrbを実行するとどうなりますか? – Roberrrt

+0

結果として定義されていません。 – Ndx

答えて

2

$('.grid')オブジェクトにはクラス.gridのすべての要素が含まれています。 checking functionを作成する場合は、それぞれを渡す必要があります。 htmlコードを投稿してください。この1

function isattr(elm) { 
 
    var attrb = $(elm).attr('mine-data'); 
 
    //compare with string 10 
 
    if (attrb === '10') { 
 
    return true; 
 
    } 
 
    return false; 
 
} 
 

 
//get the array 
 
var arrs = $('.grid').toArray(); 
 
//check for each element 
 
arrs.forEach(function(elm) { 
 
    // here we check each element and addEventListener  
 
    $(elm).on('click', function(e) { 
 
    console.log(isattr(this)); 
 
    }); 
 
})
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.1.1.min.js"></script> 
 
<div class="grid" mine-data=10>ok</div> 
 
<div class="grid" mine-data=10>ok</div> 
 
<div class="grid" mine-data=9>not</div> 
 
<div class="grid">not</div> 
 
<div class="grid" mine-data=10>ok</div>

+0

これは私が探しているものに近い解決策です。もし私がdivをattr 10でクリックすると、それは本当のコンソールログでしょうか? – Ndx

+0

はい、もちろんです。それぞれの 'elm'に' addEventListener'を追加することができます。上記の更新された答えを確認し、各部門をクリックしてみてください。 – RizkiDPrast

+0

これは機能しています。ありがとうございました! – Ndx

0

$.each()を使用する必要があります。 $(this)が具体的な要素になる関数を与えてください。

-1

Attr()は、JavaScriptオブジェクトの属性を取得します。 attr()の代わりにprop()を使用する必要があります

関連する問題