To niemożliwe; przeglądarka nie traktuje treści HTML wewnątrz znaczników <script>
jako części DOM. Gdy pobierzesz zawartość tagu <script>
za pomocą $('#idhere').html()
, otrzymujesz wynik ciągu.
Aby odpowiedzieć na pytanie Troya, najprawdopodobniej zawiera szablony w dokumencie <head>
, aby mógł ostatecznie renderować zawartość dynamicznie po stronie przeglądarki. Jeśli jednak tak jest, OP powinien używać innego typu MIME niż text/html
. Powinieneś używać nieznanego typu MIME, takiego jak text/templates
- przy użyciu text/html
mylisz to, co jest celem zawartości.
jestem zgadywania powód, dla którego próbujemy dotrzeć do tagu <script>
i złapał div
to dlatego, że zbudowana mniejsze podgrupy szablonów w ramach jednolitego <script>
tagu. Te mniejsze szablony powinny raczej być umieszczane w ich własnych znacznikach <script></script>
niż w jednej dużej parze tagów <script></script>
.
Więc zamiast:
<script type="text/template" id="big_template">
<div id="sub_template_1">
<span>hello world 1!</span>
</div>
<div id="sub_template_2">
<span>hello world 2!</span>
</div>
</script>
Wykonaj:
<script type="text/template" id="template_1">
<span>hello world 1!</span>
</script>
<script type="text/template" id="template_2">
<span>hello world 2!</span>
</script>
Twój znacznik jest nieprawidłowy. – undefined
Czy próbujesz coś zrobić z szablonami? http://ejohn.org/blog/javascript-micro-templating/ – dana
@undefined: Podczas korzystania z bibliotek takich jak 'knockoutJs' lub' Handlebars' na przykład w ten sposób musisz zdefiniować szablony. – Nope