2016-07-15 6 views
-1

との最初の要素を探して、親要素を見つけます。jQueryが<code>data-rowtm="1"</code>を持つクラス<code>".item assigned"</code>の最初の要素の親の私は(この場合は<code>data-droprow="7"</code>、)<code>_tagName_</code>、<code>_classname_</code>及びデータ情報を取得したい特定のデータ

<table class="otable"> 
    <tbody> 
     <tr class="batt" data-rowbatt="1"> 
      <td class="drop droppable" data-droprow="3"></td> 
      <td class="drop droppable" data-droprow="4"></td> 
      <td class="drop droppable" data-droprow="5"></td> 
      <td class="drop droppable" data-droprow="6"></td> 
      <td class="drop droppable" data-droprow="7"> 
       <div class="item assigned" data-rowtm="1" data-endtm="13" data-starttm="7"></div> 
      </td> 
      <td class="drop droppable" data-droprow="8"></td> 
      <td class="drop droppable" data-droprow="9"> 
     </tr>   
    </tbody> 
</table> 

のようなもの:

var $div = $(".drop droppable").find("[data-rowtm='" + variable + "']"); 
+0

は、あなたがそれを確認しましたか? https://api.jquery.com/parent/ –

+0

'variable'は正しく番号1を含みますが、console.log()は 'undefined'を返します – RobMor

答えて

0

あなたはtd要素.filter()する必要があります。

var td = $('.otable .drop.droppable').filter(function(){ 
 
    return $(this).find('.item.assigned').length !== 0; 
 
}); 
 

 
console.log('tag ::::->', td.prop('tagName')) 
 
console.log('data-droprow ::::->', td.data('droprow')) 
 
console.log('class ::::->', td.attr('class'))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table class="otable" width='500' border='1'> 
 
    <tbody> 
 
    <tr class="batt" data-rowbatt="1"> 
 
     <td class="drop droppable" data-droprow="3"></td> 
 
     <td class="drop droppable" data-droprow="4"></td> 
 
     <td class="drop droppable" data-droprow="5"></td> 
 
     <td class="drop droppable" data-droprow="6"></td> 
 
     <td class="drop droppable" data-droprow="7"> 
 
     <div class="item assigned" data-rowtm="1" data-endtm="13" data-starttm="7">dd7</div> 
 
     </td> 
 
     <td class="drop droppable" data-droprow="8"></td> 
 
     <td class="drop droppable" data-droprow="9"> 
 
    </tr> 
 
    </tbody> 
 
</table>

0

あなた

var $div = $(".drop droppable").find("[data-rowtm='" + variable + "']"); 

...は、あなただけの.drop.代わりのスペースが欲しい、本当に近いです:

var $div = $(".drop.droppable").find("[data-rowtm='" + variable + "']"); 
// ----------------^ 

代わりに、オールインワン:あなたが持っている何

var $div = $(".drop.droppable [data-rowtm='" + variable + "']"); 
+0

もっと興味深いものがあります。' console.log($ div.html() ) 'はHTML出力を返しますが、' console.log($ div.data()) 'は[オブジェクトオブジェクト] – RobMor

+1

を返す@MorRob:それはそうするでしょう(しかし、多くのコンソールはそれより有益です)。 jQueryの 'data'関数に引数を渡さないと、要素に格納されているすべてのデータ項目のプロパティを持つオブジェクトが返されます。 (注:['data'](http://api.jquery.com/data)を必ず読んでください。これはAPI全体で最も誤解されているjQuery関数の1つです) –

1

はあなたが与えられたデータを含む要素の親を選択することができます達成することができます.parent()を使用して、ほとんど正しいです。デモhttps://jsfiddle.net/4o3m6euv/1/

var variable=1;//Or whatever you search for... 
var $div = $(".drop.droppable [data-rowtm='" + variable + "']").parent(); 
alert($div.data('droprow'));//Gives '7' 
alert($div.prop('class'));//Gives 'drop droppable' 
alert($div.prop('tagName'));//Gives 'TD' 
+0

コードが更新されました... –

関連する問題

 関連する問題