Lo que intento hacer: Como se indica en el título, quiero establecer el CSS de una palabra si es una palabra reservada. Establecer CSS del código cuando contiene palabras reservadas
HTML
<html>
<body>
<code id="java">
public static void main(String[] args)<br>
{
<pre> System.out.println("Hello World!");</pre>
}
</code>
</body>
</html>
jQuery
$(document).ready(function()
{
// Get the text inside the code tags
var code = $("#java").text();
// Split up each word
var split = code.split(' ');
// Array of reserved words
var array = ["abstract","assert","boolean","break","byte","case",
"catch","char","class","const","continue","default",
"do","double","else","else if","enum","extends","final",
"finally","float","for","goto","if","import","implements",
"instanceof","int","interface","long","native","new","null",
"package","private","protected","public","return","short",
"static","strictfp","super","switch","synchronized","this",
"throw","throws","transient","void","volatile","while"];
// Added when text contains a reserved word
var css = {'font-weight':'bold','color':'#2400D9'}
array = jQuery.map(array, function(n,i)
{
for (int j=0; j<array.length; j++)
{
if (split[i].contains(array[j]))
split[i].css(css);
}
});
});
Problema: me he referido a la documentación de varios métodos (en la sección de referencias a continuación), pero no estoy muy seguro de dónde radican los problemas. Para reducir el problema abajo, mi pregunta (s) sería ...
- Es
.split()
incluso un método en jQuery? - ¿Debo usar un loop
for
para ejecutar todas las palabras en la matriz (para ver si el código contiene una palabra reservada) o hay un mejor enfoque (como.each()
)? - Si debería usar
.each()
, ¿podría alguien darme un ejemplo simple? No entiendo los ejemplos en la documentación.
Referencias
jQuery es JavaScript y utiliza métodos JavaScript todo el tiempo. Verifique esta publicación, puede ayudar mucho - http://stackoverflow.com/questions/784012/javascript-equivalent-of-phps-in-array –
['.split()'] (http: //www.w3schools .com/jsref/jsref_split.asp) es un método de cadena en JavaScript. Por lo tanto, también es un método de cadena en jQuery;). – Zeta
por cierto, $ .each() funciona un poco más lento que JS nativo para bucle (http://jsperf.com/jquery-vs-lowdash-loops/4), pero es mucho más conveniente de usar. Cuando no hay muchos elementos, prefiero .each(). Con más elementos, la diferencia de rendimiento comienza a mostrarse y, por lo general, utilizo un ciclo habitual para. –