2009-09-16 14 views
5

mam następujące HTMLJak uzyskać zawartość div, która zawiera bloki skryptów JavaScript?

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

Jak zdobyć zawartość #example ale także z JavaScript?

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

wszystko nie działa.

+4

JavaScript nie należą tam – Natrium

+1

$ .html() powinna pracowali. zastanawiam się dlaczego. – mauris

Odpowiedz

5

Working Demo

Można użyć

html(): Pobierz zawartość HTML (innerHTML) pierwszego dopasowanego elementu.

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

, gdy używam $ ("# przykład"). Html(); Dostaję tylko zawartość div, ale bez tego javascriptu, ignoruje on wszystkie javascript –

11

Metoda html() powinna zadziałać. Czy na pewno uruchamiasz kod po zakończeniu DOM?

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

.html() usunie wszystkie znaczniki

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

ten pobierze Ci innerText div. Napisz na tej linii na końcu znacznika body. Albo nazywają go w sposób, który zostanie wywołana po onLoad ciała

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

Możesz dodać opis do swojego rozwiązania, aby wyjaśnić, co robisz i dlaczego. – Sgoettschkes

0
menuItem.firstChild.innerHTML 

Może to pomoże.

0

To działa na mnie. $ („# przykład”) zawartość()

0

W moim przypadku mam coraz fragment kodu HTML z powrotem z usługi internetowej (jako właściwość w obiekcie zwracane jako JSON) . Chcę wyświetlić go bez formatowania, a także bez bloków javascript. .html() zwraca dla mnie bloki javascript, więc to nie działa.

Co skończyło się było:

// 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

Powiązane problemy