Actualizar:
Desde jQuery 1.8, podemos usar $ .parseHTML , que analizará la cadena HTML a una matriz de nodos DOM. p.ej:
var dom_nodes = $($.parseHTML('<div><input type="text" value="val" /></div>'));
alert( dom_nodes.find('input').val() );
MANIFESTACIÓN
var string = '<div><input type="text" value="val" /></div>';
$('<div/>').html(string).contents();
MANIFESTACIÓN
¿Qué está pasando en este código?
$('<div/>')
es una falsificación <div>
que no existe en el DOM
$('<div/>').html(string)
se agrega string
dentro de esa falsificación <div>
como niños
.contents()
recupera a los hijos de esa falsificación <div>
como un objeto jQuery
Si quieres .find()
trabajar, prueba esto:
var string = '<div><input type="text" value="val" /></div>',
object = $('<div/>').html(string).contents();
alert( object.find('input').val() );
MANIFESTACIÓN