Se corro questo codice -utilizzando jQuery per cercare una stringa di codice HTML
var html= '<html><head></head><body><div class="bar"></div></body></html>';
console.log($(html).find('div'));
non ottengo risultati restituiti, se corro questo codice -
var html= '<html><head></head><body><div><div class="bar"></div></div></body></html>';
console.log($(html).find('div'));
Poi ho un unico risultato restituito - il div interno (<div class="bar"></div>
). Mi sarei aspettato che il primo snippet di codice restituisse un singolo risultato e il secondo frammento di due risultati.
Allo stesso modo, questo codice ha prodotto alcun risultato -
var code = $("<div id='foo'>1</div><div id='bar'>2</div>");
console.log(code.find('div'));
ma questo codice avvisi 'div' due volte -
var code = $("<div id='foo'>1</div><div id='bar'>2</div>");
code.each(function() {
alert(this.nodeName);
})
Dato il risultato del secondo frammento di, mi sarei aspettato il primo codice snippet per restituire due risultati. Qualcuno potrebbe spiegare perché sto ottenendo i risultati che sto ottenendo?
http://jsfiddle.net/ipr101/GTCuv/
ho cambiato 'console.log' a' alert', ed avvisato '[object Object]', in modo che deve aver trovato qualcosa ... –
@Eran Zimmerman: Questo perché jQuery restituisce sempre un oggetto, indipendentemente dalla quantità di corrispondenze trovate per il selettore. –
Suppongo che [oggetto oggetto] si riferisca alla matrice vuota restituita da jQuery. – ipr101