If-then istruzione in jQuery

Attualmente, ho bisogno di controllare un determinato tag di ancoraggio per vedere se contiene un certo testo. Se è così, allora ho bisogno di cambiare il testo di un altro elemento. Solo per fare un esempio, ho il seguente codice. Tuttavia, non importa quello che ho messo all’interno un tag di ancoraggio, è sempre avvisi “sì!”.

if ($("a:contains('Level 2 (Admin Only)')")) {
    alert("yup!");
} 
else {
    alert("nope!");
}

Che cosa sto facendo di sbagliato? Devo utilizzare un altro metodo di selezione?

InformationsquelleAutor captainrad | 2011-11-07

 

3 Replies
  1. 4

    Che è perché $("a:contains('Level 2 (Admin Only)')") è sempre vero.

    Provare questo:

    if($("a:contains('Level 2 (Admin Only)')").length) {
       alert("yup!");
    }else{
       alert("nope!");
    }
    • length != 0? Meh. Questo è JavaScript. Utilizzare il truthiness!
    • volevo solo mantenere l’istruzione se stesso come l’OP aveva.
    • grazie funziona alla grande!
    • no problemo ^_^
  2. 5

    È necessario controllare le dimensioni dell’oggetto jQuery. jQuery restituisce un oggetto costituito da tutti abbinati elementi.

     //If .length == zero, it evaluates to false in an if condition
    if ($("a:contains('Level 2 (Admin Only)')").length) {
  3. 2

    Il metodo jQuery sempre restituisce un oggetto se il selettore corrispondenza di eventuali elementi o non; e gli oggetti sono sempre truthy.

    Si dovrebbe usare il .lunghezza attributo, invece, che sarà truthy se un elemento è stato abbinato, e falsy se uno non lo era.

    if ($("a:contains('Level 2 (Admin Only)')").length) {
       alert("yup!");
    }else{
       alert("nope!");
    }

Lascia un commento