Estoy intentando seleccionar todas las etiquetas <script type="text/html">
en una página. Yo uso <script>
etiquetas para almacenar plantillas HTML, similar a how John Resig does it. Por alguna razón, no parece el siguiente selector de jQuery que la selección de cualquier cosa:problema de selector de jquery con etiquetas de script
$("script[type*=html]").each(function() {
alert("Found script "+this.id);
});
Este marcado está en el cuerpo del documento HTML:
<body>
<script id="filter-search" type="text/html">
<dt>Search</dt>
<dd><input type="text"/></dd>
</script>
</body>
También he intentado ponerla en el encabezado del documento HTML, y todavía no se encuentra. No se muestra ninguna alerta.
Si en lugar de cambiar el código para esto:
$("script[type*=javascript]").each(function() {
alert("Found script "+this.id);
});
luego lo encuentra sólo las secuencias de comandos en la cabeza que tiene un src
en un archivo externo. Los guiones en la página actual no se encuentran. Por ejemplo, con el siguiente en CABEZA:
<head>
<script type="text/javascript" src="jquery.js" id="jquery"></script>
<script type="text/javascript" src="jquery-ui.js" id="ui"></script>
<script type="text/javascript" id="custom">
$(document).ready(function() {
$("script[type*=javascript]").each(function() {
alert("Found script "+this.id);
});
$("script[type*=html]").each(function() {
alert("Found TEMPLATE script "+this.id);
});
});
</script>
<script id="filter-test" type="text/html">
<dt>Test</dt>
</script>
</head>
<body>
<script id="filter-search" type="text/html">
<dt>Search</dt>
<dd><input type="text"/></dd>
</script>
</body>
consigo las siguientes alertas:
- encontrado guión jQuery
- guión Encontrado UI
Los custom
y filter-test
scripts en el HEAD no está seleccionado, ni el script filter-search
en la etiqueta body
.
¿Es este el comportamiento esperado? ¿Por qué esto no funciona? Puedo evitarlo, pero es molesto que no funcione.
EDITAR: Resulta que esto realmente funciona bien con el ejemplo anterior. En mi situación, el código jquery estaba en un módulo Javascript externo, y definitivamente no funcionaba. Cuando moví el código a una etiqueta de script en la página, funcionó. Todavía no entiendo por qué no funcionaría en el archivo externo, pero informaré aquí si llego a solucionarlo en algún momento.
Si ejecuto su script con jQuery 1.4.2 en cromo, todos los ID deseados son alertados – jAndy
@tauren Recientemente he tenido un problema similar. Por favor, ¿podrías hacer un experimento: el cambio text/html a otra cosa (sugieren texto/plantilla) y ver si esto entonces trabaja con su script externo ... – UpTheCreek