Cosa sto cercando di fare: Come indicato nel titolo, voglio impostare il CSS di una parola se è una parola riservata. Imposta CSS del codice quando contiene parole riservate
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: ho fatto riferimento alla documentazione per diversi metodi (nella sezione riferimenti di seguito), ma non sono troppo sicuro di dove si trova il problema (s). Per ridurre il problema verso il basso, la mia domanda (s) sarebbe ...
- È
.split()
anche un metodo in jQuery? - Devo utilizzare un ciclo
for
per eseguire tutte le parole nell'array (per vedere se il codice contiene una parola riservata) oppure esiste un approccio migliore (ad esempio.each()
)? - Se dovessi usare
.each()
, qualcuno potrebbe darmi un semplice esempio? Non capisco gli esempi nella documentazione.
Riferimenti
jQuery è JavaScript e utilizza metodi JavaScript per tutto il tempo. Controlla questo post, può essere di grande aiuto - http://stackoverflow.com/questions/784012/javascript-equivalent-of-phps-in-array –
['.split()'] (http: //www.w3schools .com/jsref/jsref_split.asp) è un metodo stringa in JavaScript. Quindi è anche un metodo stringa in jQuery;). – Zeta
btw, $ .each() si comporta un po 'più lentamente rispetto al JS nativo per loop (http://jsperf.com/jquery-vs-lowdash-loops/4), ma è molto più comodo da usare. Quando non ci sono molti elementi preferisco .each(). Con più elementi la differenza di prestazioni inizia a mostrare e quindi di solito uso un consueto ciclo for. –