title Attribute auslesen und weitergeben

messmar

Erfahrenes Mitglied
Hallo zusammen,

kann bitte ne(r) mir bei dem Teil her helfen... ich bekomme bei dem folgenden Code immer wieder nur: undefined zurück und nicht die gewünschte Klasse bzw. ID?

Ich habe mehere Veriante versucht, aber ohne Erfolg. Dies ist eigentlich eine ganz easy-going und einfache Sache. Aber irgendwie bin ich heute Nachmittag blind ;-(

Ich will eigentlich den title der Tabelle bekommen..

Javascript:
(function($) {
$.fn.blockConfig = function(cmsOptions, el) {
var thatEl = $(this);
...
...

var which = $( thatEl.attr( 'class' ) ).next( '.content-block' );
alert('which 1 : ' +  which);

alert('which 2: ' + $( which ).find( $('table').attr('title') ) );
};
})(jQuery);

$('.block-details').blockConfig();

Der HTML Code:

Code:
<div class="apple_overlay" id="overlay">
  <a class="close"></a>

  <div class="block-details">
     .............
  </div>

  <div class="content-block" id="XXXXXX">
       <table border="0" cellpadding="0" cellspacing="0" title="2_Spalten">
                .........
                ........
       </table>
  </div>
  <div class="set-block-layout"></div>
  </div>

Vielen Dank!
Messmar
 
Hi,

da du beim ersten Element auf die Klasse zugreifen möchtest, musst du den Punkt noch setzen:
Javascript:
var which = $("." +  thatEl.attr( 'class' ) ).next( '.content-block' );
Bei der zweiten Anweisung weiss ich nicht wirklich, was du erreichen möchtest. Willst du die Tabelle selektieren, solltest du table als Selektor für die find-Methode verwenden.

Ciao
Quaese
 
Guten Morgen,

danke erstmal!

Bei der ersten Anweisung habe ich es so versucht aber leider ohne Erfolg:

Javascript:
         $("'." +  thatEl.attr( 'class' ) + "'")

Bei der zweiten, möchte ich nur die Tabellen, die sich innerhlab des DIVs
Code:
 content-block
befinden, und ein Attribute
Code:
 title
haben, selektieren. Alle anderen Tabellen, die kein Attribute "title" haben werden ignoriert.

Ich weiß, dass es anders ginge und ich habe es auch so erledigt

Javascript:
var $target = $( '.block-details' ).next('div');
var tb = $target.find( 'table' ) ;
var ttTB = tb.attr( 'title' );

aber es ging mir Anfangs, den Code möglichst dynamisch zu halten und die Elemente nicht direkt via deren Klassen/IDs anzusprechen. Wer weiß, was sich im Laufe des Code allles sich ändern könnte.

Danke
Messamar
 
Hi,

wenn du es so verwendest, wie ich es vorgegeben habe, sollte es funktionieren.

Zum Zweiten:
Javascript:
$( which ).find( 'table[title]')

Ciao
Quaese
 
Hi Quaese!

vielen Dank fürs Feedback. Es hat ledier nicht funkt. Dann habe ich im Code irgendwo nen Dreher..

Danke und Grüße
Messmar
 
Guten Morgen!

ich bekomme schon [Object Object] zurück.. nur damit kann ich die nächsten Anweisungen auf das Object/Tabelle
nicht verweden.. das ist der Punkt.

Es scheint dass die Anweisung hier
Javascript:
$( which ).find( 'table[title]')
nicht als so zusagen ein Selector erkannt zu werden.

Danke
Messmar
 
Guten Abend,

ja, ich kann es bestätigen, dass Dein Beispiel auf Fiddle einwandfreit funkt. und ist auch ne gute Idee!

Ich verwende die Anweisung in nem weiteren Code-Part z.B. das hier:

Javascript:
function getHTMLLoaded(url, el) {
      $.get(url, function(data) {
          console.log( $(data).find('table[title]') );
          el.after(data);
          $(data).find('table[title]').click(function(){
                alert('DONE');
          });
     });
};

Ich will, wenn die Tabelle dann in nem DIV via Ajax/GET eingebettet wird, dass sie als Objekt anklickbar ist, damit ich es der
nen EventHandler zuweisen kann.

Ich habe es auch mit
Javascript:
$(data).filter('table[title]')

aber es funkt. leider nicht... es wird kein Fehler ausgegeben oder Ähnliches. Nicht mal ne Warnung.

Ich habe mir überlegt, ob eine der folgeden Events/Methoden helfen könnte bzw. in Frage käme.


Danke & Gruß
Messmar
 
Zuletzt bearbeitet:
gelöst ;-) ich habe es außehalb des AJAX Aufrufs, implementiert.

Javascript:
$('table[title=' + $(this).prev().attr('name') + ']').click(function(){
     alert('DONE');
     getHTML( 'htmlCode/testFiles/' + $(this).prev().attr('name') + '.jsp?', $('.block-details') );
});

Danke für das Mitdenken!
Messmar
 
Zurück