2012-02-20 9 views
5

He descargado sizzle.js de https://github.com/jquery/sizzle mi código es:cómo usar sizzle.js separada

<!DOCTYPE html> 
<html> 
<head> 
    <title>Demo</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <script src="sizzle.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     window.onload=load; 
     function load(){ 
      alert(Sizzle("#test")); 
      alert(Sizzle("#test").innerHTML); 
     } 
    </script> 
</head> 
<body> 
<div id="test">abc</div> 
</body> 
</html> 

, pero alerta "[objeto]", "indefinido", por favor, dime lo que está mal en mi código?

Respuesta

6

La función Sizzle() devuelve matriz de elementos coincidentes. Entonces, si sabe que habrá exactamente un elemento coincidente (que debería haber si está seleccionando por id) intente:

alert(Sizzle("#test")[0].innerHTML); 
+0

gracias, pero ¿por qué select by id devuelve una matriz? en jquery select by id es un solo emelemt. – artwl

+6

No, en jQuery '$ (" # test ")' también devuelve una matriz (bueno, un objeto tipo array). Es solo que en jQuery cuando usas métodos de jQuery en el resultado como '$ (" # test "). Html()' los métodos de jQuery saben que están tratando con una matriz, no dan un error si no coinciden, y para los métodos que devuelven un valor (como '.html()') si más de un elemento concuerda, simplemente devuelven el valor de la primera. – nnnnnn

Cuestiones relacionadas