2011-02-08 12 views
13

Voglio sapere se il valore textarea contiene una determinata parola. Questo non funziona per me.jquery val() contiene()

var value = $('#embedModal textarea').val(); 
if($(value).contains('iframe')){... 

risposta

27

Prova javascript

if (value.indexOf('iframe') >= 0) { 

JQuery contains è per elementi DOM, non stringhe.

+0

Questo non funziona in tutti i browser IE. https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf –

+0

@JasonFoglia Questa è la documentazione per la funzione indexOf dell'array, non [indexOf della stringa] (https: // developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/indexOf). –

+0

Ci scusiamo per il tuo diritto, haha ​​ –

4

provare a farlo in questo modo:

$('#embedModal textarea:contains("iframe")').each(function() { 
    //Do something 
}); 

modificare

Example

0

Prova seguente codice .....

codice:

   <textarea rows="4" cols="9">Something iframe</textarea> 
      <textarea rows="4" cols="9">Something</textarea> 

       var obj=$("textarea:contains('iframe')"); 

        if(obj){ 

          obj.css("background-color", "red"); 

         } 
+0

-1 perché questo è già stato suggerito in [questa risposta] (http://stackoverflow.com/a/4939095/447356) oltre che la condizione 'if' sarà sempre vera, quindi è inutile. Il selettore jQuery restituirà sempre l'oggetto collezione jQuery, se si desidera verificare che contenga qualcosa che si dovrebbe controllare la sua proprietà 'length'. Vedi [questo violino] (http://jsfiddle.net/5edsr/) contro [questo uno] (http://jsfiddle.net/5edsr/1/). –

+0

sì, il selettore jQuery restituirà sempre l'oggetto collezione jQuery ma la condizione sarà vera in quel punto quando qualsiasi area di testo contiene il mondo chiave iframe altrimenti sarà falsa .... –

+0

No, non sarà mai falso perché la raccolta jQuery è un oggetto. –

0

Si può fare anche questo:

if($('#embedModal textarea:contains("iframe")').length > 0){ 
    //TODO: do stuff 
} 
0

questo funziona:

$.contains(document.documentElement, document.body); // true 

var babyEl = $('div#id'); 
var daddyEl = $('div#ID'); 

if($.contains(babyEl, daddyEl)) { 
    //do fun stuff 
}