2012-04-10 6 views
0

Ich habe diesen Code:jQuery: über booleans in Kontrollstrukturen

console.log($(domElem).attr('selected')); 

    console.log(typeof $(domElem).attr('selected')); 

    if($(domElem).attr('selected') == true); 
    { 
     alert("there is one element selected"); 
    } 

Die Ausgabe lautet:

false 
boolean 
false 
boolean 
false 
boolean 
... 

ich erwartet hatte "dies ein ausgewähltes Element ist" tat, war nie nicht gezeigt, aber Es wird so oft angezeigt, wie Gegenstände vorhanden sind.

jQuery 1.3.2

Irgendeine Idee?

Javier

+0

Also, wenn das immer '== false', ist das normal? – neoascetic

+0

versuchen Sie mit ===, lesen Sie hier, warum: http://stackoverflow.com/questions/359494/javascript-vs-does-it-matter-which-equal-operator-i-use –

+0

@neoascetic, ich nicht verstehst du .. – ziiweb

Antwort

0

Putting ein Semikolon nach dem Zustand wie:

if($(domElem).attr('selected') == true); 
{ 
     alert("there is one element selected"); 
} 

beendet die "if" Anweisung und ist das gleiche wie wenn Sie schrieb:

if($(domElem).attr('selected') == true){}; 
alert("there is one element selected"); 

ändern sie :

if($(domElem).attr('selected') == true) 
{ 
     alert("there is one element selected"); 
} 
0

Dies ist eine schwer zu beantwortende Frage, da unklar ist, was Sie erreichen möchten.

Wenn es nur ist die Überprüfung, ob ein Listenelement ausgewählt ist oder nicht, das ist, wie ich es tun würde:

Die HTML (ja ich es nahm von w3schools, sorry why this is bad!):

<select id="selectedLIST"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="mercedes">Mercedes</option> 
    <option value="audi">Audi</option> 
</select> 

die jQuery

var list = $('#selectedLIST'); 
$(list).change(function(){ 
    $.each(list.children(), function(index, value){ 
     if($(value).attr('selected') === true){ 
      alert("there is one selected"); 
     } 
    }); 
}); 

diese Liste produzieren wird, wenn ein Benutzer in der Liste ein neues Element auswählt, sagen ein Popup produzieren „diese ausgewählt ist“ auf dem Attribut basiert „selec ted "auf dem HTML-Tag.

Auch das Setzen von Semikolons nach if-Anweisungen "terminiert" diese Aussage.

Wenn Sie auch vergessen, Semikolons zu setzen, wird die JS-Engine gezwungen, Semikolon einzufügen.