Matthias Apsel: Zitatzeichen - Bug, wenn [code] folgt?

Beitrag lesen

Om nah hoo pez nyeetz, Matthias Apsel!

aus „»» > “ wird in der Vorschau „“

Nun nicht mehr.

$('.q').each(function(){  
   var $this = $(this);  
      if ($this.has('.block')) {  
         var content = $this.html();  
         content = content.replace(/(»»? |&gt;&gt; |&gt; |\| )+<code/g,'<code');  
            // Zitatzeichen unmittelbar vor code.block  
         $this.html(content);  
   }  
});

Die Bedingung in der Abfrage ist immer true, selbst wenn das Element der Klasse q keinen Nachfahren der Klasse block hat. Der Grund liegt darin, das JQuery ein leeres Array liefert aber eben doch ein Array.

Die Lösung ist, die Länge des Arrays abzufragen.

      if ($this.has('.block').length > 0) {  

Matthias

--
Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Bor und Borg.