2009-09-16 7 views
5

tengo el siguiente código HTML¿Cómo obtener el contenido de div que contiene bloques de script de JavaScript?

<div id="example"> 
    ...some text... 
    <script type="text/javascript"> 
    ... some javascript... 
    </script> 
</div> 

Cómo obtener el contenido de #example sino también con el código JavaScript?

$("#example").html(), 
$("#example").text(),  
$("#example").val()  

todos no funcionan.

+4

javascript no pertenece allí() debería haber trabajado – Natrium

+1

$ .html. me pregunto porque. – mauris

Respuesta

5

Working Demo

Puede utilizar

html(): Obtener el contenido HTML (innerHTML) del primer elemento coincidente.

var contents = $("#example").html(); 
+1

cuando uso $ ("# example"). Html(); obtengo solo contenido de div, pero sin ese javascript, ignora todo javascript –

11

El método html() debería funcionar para usted. ¿Estás seguro de que estás ejecutando el código después de que se complete el DOM?

$(document).ready(function(){ 
    alert($("#example").html()); 
}); 
+0

.html() eliminará todas las etiquetas

1
var txt = document.getElementById("example").innerHTML; 

Esto le va a buscar a la InnerText div. Escriba esta línea al final de su etiqueta de cuerpo. O lo llaman en un método que se llamará después onLoad cuerpo

0
<!--This code will work --> 
<html> 
<head>  
<!--<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js" lang='text/javascript' />--> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 

<script type="text/javascript"> 
$(document).ready(function() { 

//alert($('#example p').html()); 
alert($('#example').text()); 

alert($('#example #1').text()); 
alert($('#example #2').text()); 
alert($('#example #3').text()); 
alert($('#example #4').text()); 
//alert($("#example p").get().innerHTML); 
//alert('hey'); 


}); 
</script> 
</head> 
<body> 
<div id="example"> 
    <p>...some text...</p> 
    <div id="1"> 
    Here's 1 
    </div> 
    <div id="2"> 
    Here's 2 
    </div> 
    <div id="3"> 
    Here's 3 
    </div> 
    <div id="4"> 
    Here's 4 
    </div> 

</div> 

</body> 
</html> 
+0

Es posible que desee agregar alguna descripción a su solución para explicar lo que está haciendo y por qué. – Sgoettschkes

0
menuItem.firstChild.innerHTML 

Tal vez esto ayude.

0

Esto funciona para mí:. $ ("# ejemplo") contenidos()

0

En mi caso estoy recibiendo un fragmento de HTML de vuelta de un servicio web (como una propiedad de un objeto devuelve como JSON) . Quiero mostrarlo sin formatear, y también sin bloques de JavaScript. El .html() devuelve los bloques javascript por mí, así que eso no funciona.

Lo que terminé con la era:

// Build up the message a bit artificially for this demo. 
// is actually response from ajax call 
var message = '<scri'; 
message += 'pt type="text/javascript">var foo = "bar";</scr' 
message += 'ipt><h2>A heading</h2><div>This is a message</div>'; 

var message_html = jQuery('<div/>') // create a container 
    .html(message) // set the contents from the message 
    .find('script') // find script blocks 
    .remove() // and remove them 
    .end(); // back to the original collection but without script blocks 
// Now get just the text from there 
alert(message_html.text()); 

Working fiddle

Cuestiones relacionadas