2012-03-27 6 views
0

definiert ist, habe ich ein div, das über ein this definiert wird. Stellen Sie sich das var div unten:Wie man auf dieses Attribut unter Verwendung von jQuery zugreift, vorausgesetzt, dass ein div durch dieses

<td itemid='desired number'> 
    <div>div 1</div> 
    <div class="action">div 2</div> 
</td> 

die var div Bedenkt man, wie kann ich das itemid Attribut des td auszuarbeiten, die es enthält. Beachten Sie, dass ich nicht eine Lösung wollen, die direkt das itemid Attribut zugreift, hat es auf die itemid die div enthält, 2.

var div = $('.action') 

Ich habe versucht, mit parent() ohne Erfolg.

Danke.

+0

'.parent' sollte gut funktionieren .. nicht sicher, warum es für Sie versagt ... Versuchen Sie' div.parent().attr ('itemid') ' –

+0

eine Notiz itemid ist ungültig html Sie können Daten-* Attribute verwenden, wenn Sie also Daten schreiben-itemid wird gültig html –

+0

Sind Sie sicher, dass Ihr div an das Dokument angehängt ist? Sie können dies mit Alert (div.parent(). Length) überprüfen. Wenn es 0 zurückgibt, bedeutet dies, dass Ihr div von $ (". Action") nicht gefunden wurde, da es nicht an dom angehängt ist –

Antwort

0

dieses Versuchen var itemID = $('.action').parent().attr('itemid');

2

Statt .parent() zu verwenden, können Sie versuchen, die Eltern mit() und angeben, was Sie suchen.

Beispiel:

$(".action").parents("td") // will return the TD element 

Beweis: http://jsfiddle.net/9LQB3/

ich die Eltern() -Methode anstelle von parent() wie die Eltern() die Hierarchie sieht höher, und nicht nur die unmittelbar übergeordnete .

0

Sie erwähnten, dass Sie parent versucht, aber ohne ein Beispiel, das nicht, und mit meiner Neigung sollte es anzunehmen, funktioniert funktioniert, kann ich vorschlagen:

var val = div.parent().attr('itemid'); 
1

Haben Sie versucht, div.closest('td') mit?

0

$('div.action').parents('td').attr('itemid'); Sollte es tun. Übrigens ist dieses Artikelattribut ungültig. Wahrscheinlich am besten, um das Datenattribut zu verwenden.

2

Wenn Sie benutzerdefinierte Attribute verwenden werden, sollten Sie es wirklich mit HTML5 data-* Attribute tun, so verwenden data-itemid='desired number' statt, dann die .data() anstatt .attr() Funktion den Wert zu erhalten.

HTML:

<td data-itemid='desired number'> 
    <div>div 1</div> 
    <div class="action">div 2</div> 
</td> 

jQuery:

var div = $('.action'); 
var itemId = div.parent().data('itemid'); 
0

Versuchen folgende jQuery-Anweisung:

$("TD[itemid='desired number']:has(.action)") 
1

.parent() sollte in Ordnung sein. diese

Versuchen:

<html> 
    <head> 
    <script type="text/javascript" src="jquery.min.js"></script> 
    <script type="text/javascript"> 
     $(function() { 
      var div = $('.action'); 
      console.log('HEP: ' + $(div).parent().attr('itemid')); 
     }); 
    </script> 
    </head> 
    <body> 
    <table> 
     <tr> 
     <td itemid='desired number'> 
      <div>div 1</div> 
      <div class="action">div 2</div> 
     </td> 
     </tr> 
    </table> 
    </body> 
</html> 
Verwandte Themen