<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Kommentare zu: Mit jQuery ein Element verändern</title>
	<atom:link href="http://macx.de/journal/mit-jquery-ein-element-verandern/feed/" rel="self" type="application/rss+xml" />
	<link>http://macx.de/journal/mit-jquery-ein-element-verandern/</link>
	<description>Webstandards im Fokus</description>
	<lastBuildDate>Fri, 30 Jul 2010 08:27:22 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>Von: F-LOG-GE &#187; Blog Archive &#187; Neue Lektüre zu jQuery</title>
		<link>http://macx.de/journal/mit-jquery-ein-element-verandern/comment-page-1/#comment-41108</link>
		<dc:creator>F-LOG-GE &#187; Blog Archive &#187; Neue Lektüre zu jQuery</dc:creator>
		<pubDate>Thu, 08 Jan 2009 14:32:20 +0000</pubDate>
		<guid isPermaLink="false">http://macx.de/?p=158#comment-41108</guid>
		<description>[...] im Mai letzten Jahres schrieb David Maciejewski dar&#252;ber, wie man mit jQuery ein Element ver&#228;ndern kann. Auch die Kommentare zu diesem Artikel sind sehr [...]</description>
		<content:encoded><![CDATA[<p>[...] im Mai letzten Jahres schrieb David Maciejewski dar&#252;ber, wie man mit jQuery ein Element ver&#228;ndern kann. Auch die Kommentare zu diesem Artikel sind sehr [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: alexander farkas</title>
		<link>http://macx.de/journal/mit-jquery-ein-element-verandern/comment-page-1/#comment-33166</link>
		<dc:creator>alexander farkas</dc:creator>
		<pubDate>Sun, 31 Aug 2008 22:16:39 +0000</pubDate>
		<guid isPermaLink="false">http://macx.de/?p=158#comment-33166</guid>
		<description>Hallo David,

das mit der index-Methode stimmt nicht ganz. Die index-Methode schaut an welcher Stelle innerhalb einer Auswahl von Elementen ein bestimmtes Element vorkommt. Dies ist sehr sinnvoll, wenn man zum Beispiel das Highlighting für eine Pagination macht und den agezeigten Teaser kennt ($(&#039;#mypagination li:eq(&#039;+$(&#039;#current-teaser&#039;).index()+&#039;)&#039;).addClass(&#039;current&#039;);) oder (&#039;Teaser &#039;+String($(&#039;#current-teaser&#039;).index() + 1)+&#039; von &#039;$(&#039;#teasers&#039;).length).

Wenn man wissen möchte, ob ein Element überhaupt vorkommt, ist die Methode zwar schnell geschrieben, aber extrem ineffizient:
if($(&#039;*&#039;).index(&#039;#foo&#039;) != -1){
//tu was
}
Dieser Code sagt folgendes: Hole dir - egal ob du #foo findest - erstmal alle elemente im dokument, hole dir nun #foo und gebe #foo eine eindeutige id. danach gehe bitte alle elemente durch und sage mir an wievielter stelle #foo dort vorkommt. 

und was macht der scripter in dem beispiel mit dieser aufwendig berechneten information? nichts. er wollte nur wissen, ob foo im dokument vorkommt... (if($(&#039;#foo&#039;)[0]){})

mehr zum thema ineffizienter jquery-code: http://www.protofunc.com/2008/07/27/ineffizienter-jquery-code/

P.S.: Leider wurde der Beispiel-Code etwas umformatiert, so dass er nicht lauffähig ist, aber es dürfte klar sein, was ich meinte.</description>
		<content:encoded><![CDATA[<p>Hallo David,</p>
<p>das mit der index-Methode stimmt nicht ganz. Die index-Methode schaut an welcher Stelle innerhalb einer Auswahl von Elementen ein bestimmtes Element vorkommt. Dies ist sehr sinnvoll, wenn man zum Beispiel das Highlighting für eine Pagination macht und den agezeigten Teaser kennt ($(&#8217;#mypagination li:eq(&#8216;<ins>$(&#8217;#current-teaser&#8217;).index()</ins>&#8217;)&#8217;).addClass(&#8216;current&#8217;);) oder (&#8216;Teaser &#8217;+String($(&#8217;#current-teaser&#8217;).index() + 1)+&#8217; von &#8217;$(&#8217;#teasers&#8217;).length).</p>
<p>Wenn man wissen möchte, ob ein Element überhaupt vorkommt, ist die Methode zwar schnell geschrieben, aber extrem ineffizient:<br />
if($(&#8217;*&#8217;).index(&#8217;#foo&#8217;) != -1){<br />
//tu was<br />
}<br />
Dieser Code sagt folgendes: Hole dir &#8211; egal ob du #foo findest &#8211; erstmal alle elemente im dokument, hole dir nun #foo und gebe #foo eine eindeutige id. danach gehe bitte alle elemente durch und sage mir an wievielter stelle #foo dort vorkommt. </p>
<p>und was macht der scripter in dem beispiel mit dieser aufwendig berechneten information? nichts. er wollte nur wissen, ob foo im dokument vorkommt&#8230; (if($(&#8217;#foo&#8217;)[0]){})</p>
<p>mehr zum thema ineffizienter jquery-code: <a href="http://www.protofunc.com/2008/07/27/ineffizienter-jquery-code/" rel="nofollow">http://www.protofunc.com/2008/07/27/ineffizienter-jquery-code/</a></p>
<p>P.S.: Leider wurde der Beispiel-Code etwas umformatiert, so dass er nicht lauffähig ist, aber es dürfte klar sein, was ich meinte.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: macx</title>
		<link>http://macx.de/journal/mit-jquery-ein-element-verandern/comment-page-1/#comment-24717</link>
		<dc:creator>macx</dc:creator>
		<pubDate>Tue, 03 Jun 2008 10:07:37 +0000</pubDate>
		<guid isPermaLink="false">http://macx.de/?p=158#comment-24717</guid>
		<description>In der jQuery 1.2.6 hat (siehe oben im Artikel) nun die Funktion .index() Einzug gehalten, die genau das macht, was ich haben wollte und hier konstruiert hatte.</description>
		<content:encoded><![CDATA[<p>In der jQuery 1.2.6 hat (siehe oben im Artikel) nun die Funktion .index() Einzug gehalten, die genau das macht, was ich haben wollte und hier konstruiert hatte.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: 2meter3</title>
		<link>http://macx.de/journal/mit-jquery-ein-element-verandern/comment-page-1/#comment-24663</link>
		<dc:creator>2meter3</dc:creator>
		<pubDate>Fri, 16 May 2008 16:46:40 +0000</pubDate>
		<guid isPermaLink="false">http://macx.de/?p=158#comment-24663</guid>
		<description>keine neuen beispiele, immer dasselbe. :-) meine einzige frage ist, warum ein 

$( &#039;#meinDiv&#039; ).found(function(){ // beliebiges javascript }

eleganter sein soll als ein einfaches

if($( &#039;#meinDiv&#039; ).length) { // beliebiges javascript }

- es muss eine zusätzliche funktion definiert werden
- jeder funktionsaufruf ist ein zusätzlicher indirektionsschritt
- es ist länger!

einen vorteil bietet meiner meinung nach allein alexanders verbesserungsvorschlag, weil hier innerhalb des blocks direkt mit this auf das überprüfte objekt zugrtriffen werden kann.

so, das solls jetzt aber gewesen sein. jQuery rockt!</description>
		<content:encoded><![CDATA[<p>keine neuen beispiele, immer dasselbe. <img src='http://macx.de/blogmin/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  meine einzige frage ist, warum ein </p>
<p>$( &#8217;#meinDiv&#8217; ).found(function(){ // beliebiges javascript }</p>
<p>eleganter sein soll als ein einfaches</p>
<p>if($( &#8217;#meinDiv&#8217; ).length) { // beliebiges javascript }<br />
 &#8211; es muss eine zusätzliche funktion definiert werden &#8211; jeder funktionsaufruf ist ein zusätzlicher indirektionsschritt &#8211; es ist länger!</p>
<p>einen vorteil bietet meiner meinung nach allein alexanders verbesserungsvorschlag, weil hier innerhalb des blocks direkt mit this auf das überprüfte objekt zugrtriffen werden kann.</p>
<p>so, das solls jetzt aber gewesen sein. jQuery rockt!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: macx</title>
		<link>http://macx.de/journal/mit-jquery-ein-element-verandern/comment-page-1/#comment-24662</link>
		<dc:creator>macx</dc:creator>
		<pubDate>Fri, 16 May 2008 16:22:15 +0000</pubDate>
		<guid isPermaLink="false">http://macx.de/?p=158#comment-24662</guid>
		<description>Ich fürchte, ich habe mich blöd ausgedrückt. Natürlich kannst du jQuery-Funktionen aneinanderketten. Doch du kannst da mal keine Mathefunktionenausführen, ein bisschen Voddozauber machen und und und.
Mit meiner Variante ist das nun möglich. Du könntest sogar reines Javascript da einbinden und was weiß ich programmieren. Ist das so schlimm, oder warum suchst du immer neue Beispiele? ;-)</description>
		<content:encoded><![CDATA[<p>Ich fürchte, ich habe mich blöd ausgedrückt. Natürlich kannst du jQuery-Funktionen aneinanderketten. Doch du kannst da mal keine Mathefunktionenausführen, ein bisschen Voddozauber machen und und und.<br />
Mit meiner Variante ist das nun möglich. Du könntest sogar reines Javascript da einbinden und was weiß ich programmieren. Ist das so schlimm, oder warum suchst du immer neue Beispiele? <img src='http://macx.de/blogmin/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: 2meter3</title>
		<link>http://macx.de/journal/mit-jquery-ein-element-verandern/comment-page-1/#comment-24661</link>
		<dc:creator>2meter3</dc:creator>
		<pubDate>Fri, 16 May 2008 15:51:09 +0000</pubDate>
		<guid isPermaLink="false">http://macx.de/?p=158#comment-24661</guid>
		<description>Mehrere jQuery-Funktionen? Alle jQuery-Funktionen können verkettet werden (chaining), da sie das jQuery-Objekt (also die gefundenen Elemente) selbst zurückgeben. 

$( &#039;#meinDiv&#039; ).css( &#039;backgroundColor&#039;, &#039;#F00&#039; ).text( &#039;foo&#039; ).hide().slideIn( 500 );

Ansonsten wird in der vorgeschlagenen $.fn.found auch nichts anderes gemacht, als die length-eigenschaft zu prüfen. eine einfache if-abfrage (mein zweites beispiel) reicht aber vollkommen aus. warum sollte dafür eine eigene funktion definiert werden?</description>
		<content:encoded><![CDATA[<p>Mehrere jQuery-Funktionen? Alle jQuery-Funktionen können verkettet werden (chaining), da sie das jQuery-Objekt (also die gefundenen Elemente) selbst zurückgeben. </p>
<p>$( &#8217;#meinDiv&#8217; ).css( &#8216;backgroundColor&#8217;, &#8217;#F00&#8217; ).text( &#8216;foo&#8217; ).hide().slideIn( 500 );</p>
<p>Ansonsten wird in der vorgeschlagenen $.fn.found auch nichts anderes gemacht, als die length-eigenschaft zu prüfen. eine einfache if-abfrage (mein zweites beispiel) reicht aber vollkommen aus. warum sollte dafür eine eigene funktion definiert werden?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: macx</title>
		<link>http://macx.de/journal/mit-jquery-ein-element-verandern/comment-page-1/#comment-24660</link>
		<dc:creator>macx</dc:creator>
		<pubDate>Fri, 16 May 2008 14:59:49 +0000</pubDate>
		<guid isPermaLink="false">http://macx.de/?p=158#comment-24660</guid>
		<description>@2meter3: Dein Beispiel passt nicht, denn du führst nur eine (!) Funktion aus. Ich möchte aber, dass du beliebig viele ausführen kannst, ohne dass ich dafür eine extra Funktion schreiben muss, also ähnlich wie es mit each() funktioniert. Die Lösung gibts ja auf meiner Seite.

@Alexander: Danke für deinen Vorschlag.</description>
		<content:encoded><![CDATA[<p>@2meter3: Dein Beispiel passt nicht, denn du führst nur eine (!) Funktion aus. Ich möchte aber, dass du beliebig viele ausführen kannst, ohne dass ich dafür eine extra Funktion schreiben muss, also ähnlich wie es mit each() funktioniert. Die Lösung gibts ja auf meiner Seite.</p>
<p>@Alexander: Danke für deinen Vorschlag.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: 2meter3</title>
		<link>http://macx.de/journal/mit-jquery-ein-element-verandern/comment-page-1/#comment-24659</link>
		<dc:creator>2meter3</dc:creator>
		<pubDate>Fri, 16 May 2008 13:50:10 +0000</pubDate>
		<guid isPermaLink="false">http://macx.de/?p=158#comment-24659</guid>
		<description>[re-posted aus dirks blog]

Hm, vielleicht ist jQuery nicht zu einfach, sondern ihr denkt zu kompliziert? Oder versteh ich das Problem nicht?

Alles, was in einem $(document).ready() {} Block steht, kann unmittelbar ausgeführt werden.

$( &#039;#meinDiv&#039; ).jQueryFunktion(&quot;bla&quot;, &quot;blubb&quot;);

#meinDiv muss in diesem Fall nicht mit einem Ereignis verknüpft werden.

Alle jQuery-Funktionen &quot;arbeiten&quot; auch auf dem leeren jQuery-Objekt. Wenn #meinDiv nicht im DOM existiert, gibts somit keinen Fehler, sondern es passiert einfach gar nichts.

Oder gehts darum, in Abhängigkeit von der Existenz eines DOM-Elements nicht-jQuery-Funktionalität auszuführen? In dem Fall reicht ein einfache Bedingung, die die length-Eigenschaft des jQuery-Objekts prüft:

if($( &#039;#meinDiv&#039; ).length) {}</description>
		<content:encoded><![CDATA[<p>[re-posted aus dirks blog]</p>
<p>Hm, vielleicht ist jQuery nicht zu einfach, sondern ihr denkt zu kompliziert? Oder versteh ich das Problem nicht?</p>
<p>Alles, was in einem $(document).ready() {} Block steht, kann unmittelbar ausgeführt werden.</p>
<p>$( &#8217;#meinDiv&#8217; ).jQueryFunktion(&#8220;bla&#8221;, &#8220;blubb&#8221;);</p>
<p>#meinDiv muss in diesem Fall nicht mit einem Ereignis verknüpft werden.</p>
<p>Alle jQuery-Funktionen &#8220;arbeiten&#8221; auch auf dem leeren jQuery-Objekt. Wenn #meinDiv nicht im <acronym title="Document Object Model">DOM</acronym> existiert, gibts somit keinen Fehler, sondern es passiert einfach gar nichts.</p>
<p>Oder gehts darum, in Abhängigkeit von der Existenz eines <acronym title="Document Object Model">DOM</acronym>-Elements nicht-jQuery-Funktionalität auszuführen? In dem Fall reicht ein einfache Bedingung, die die length-Eigenschaft des jQuery-Objekts prüft:</p>
<p>if($( &#8217;#meinDiv&#8217; ).length) {}</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Alexander</title>
		<link>http://macx.de/journal/mit-jquery-ein-element-verandern/comment-page-1/#comment-24658</link>
		<dc:creator>Alexander</dc:creator>
		<pubDate>Fri, 16 May 2008 13:18:56 +0000</pubDate>
		<guid isPermaLink="false">http://macx.de/?p=158#comment-24658</guid>
		<description>Hallo David,

1. dein this ist bereits das jQuery-Objekt. Du musst also nicht erst eines mit $(this) erstellen. (Es ändert sich dadurch nicht wirklich, sondern kostet nur).

2. Zahlen, die nicht 0 sind, werden in JS bei Kontrollstrukturen automatisch in true umgewandelt, 0 dagegen in false. Du kannst dir also den Vergleichsoerator sparen.

3. Wenn du jQuery schon das DOM durchsuchen lässt, wäre es schön, wenn man dann in der übergebenen Funktion Zugriff auf die Elemente hat. Hier könnte man mit der Methode call arbeiten:

Verbesserungsvorschlag:
$.fn.found = function(myFunction) {
     if(this.length) {
        myFunction.call(this);
     }
};

Grüsse
alex</description>
		<content:encoded><![CDATA[<p>Hallo David,</p>
<p>1. dein this ist bereits das jQuery-Objekt. Du musst also nicht erst eines mit $(this) erstellen. (Es ändert sich dadurch nicht wirklich, sondern kostet nur).</p>
<p>2. Zahlen, die nicht 0 sind, werden in JS bei Kontrollstrukturen automatisch in true umgewandelt, 0 dagegen in false. Du kannst dir also den Vergleichsoerator sparen.</p>
<p>3. Wenn du jQuery schon das <acronym title="Document Object Model">DOM</acronym> durchsuchen lässt, wäre es schön, wenn man dann in der übergebenen Funktion Zugriff auf die Elemente hat. Hier könnte man mit der Methode call arbeiten:</p>
<p>Verbesserungsvorschlag:<br />
$.fn.found = function(myFunction) {<br />
     if(this.length) {<br />
        myFunction.call(this);<br />
     }<br />
};</p>
<p>Grüsse<br />
alex</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: macx</title>
		<link>http://macx.de/journal/mit-jquery-ein-element-verandern/comment-page-1/#comment-24656</link>
		<dc:creator>macx</dc:creator>
		<pubDate>Fri, 16 May 2008 12:05:51 +0000</pubDate>
		<guid isPermaLink="false">http://macx.de/?p=158#comment-24656</guid>
		<description>Manueller &quot;Trackback&quot;:http://blog.highresolution.info/index.php?/highresolution/comments/hallo_jquery_ich_bin_da/ von &quot;Mr. YAML&quot;. :D</description>
		<content:encoded><![CDATA[<p>Manueller <a href="http://blog.highresolution.info/index.php?/highresolution/comments/hallo_jquery_ich_bin_da/">Trackback</a> von &#8220;Mr. YAML&#8221;. <img src='http://macx.de/blogmin/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>
