jQuery.each(player, function(key, val){
if (el = $("#pr_attr_plain_"+key)){
el.text(val === "" ? 0 : " " + val);
}
});
Ich erbte ein Projekt und ich stieß auf etwas Seltsames. Der Typ, der das Projekt begonnen hat, ist ein erfahrener Programmierer, definitiv mehr als ich. Gibt es einen Wert oder Grund (egal wie schlecht) in dies zu tun:ein einzelnes gleich in einem if. Javascript. Irgendein guter Grund?
if (el = $("#pr_attr_plain_"+key))
Es funktioniert jetzt, und es ist in einem Teil des Codes, die ich nicht zu berühren. Ich will es nicht ändern und unerwartete Konsequenzen haben, ohne zu wissen, was es tun könnte.
Ich werde dies als Kommentar hinzufügen, da niemand es erwähnt hat. '$ (..)' wird IMMER ein jQuery-Objekt zurückgeben, auch wenn es keinen Elementen entspricht. Das ursprüngliche Code-Snippet tut nicht das, was der Autor dachte. Der Körper der Bedingung wird immer ausgeführt, wird aber sowieso ein No-Op sein, wenn 'el' leer ist, also ist es in Ordnung. Es hätte nur '$ (" # pr .. ") sein sollen. Text (...);' –
Eigentlich habe ich es erwähnt :) Da ist 'jQuery.each' und nicht' $ .each' im Snippet Vielleicht läuft jQuery im Kein-Konflikt-Modus? – Tgr