This works as what I want:
var elite = document.getElementById(\"elite\"),
leet = document.getElementById(\"leet\"),
alphabets = {
a: \"4\",
b: \"8\"
I'm looking for a way to convert words like "cool, "hacker" to "kewl" and "haxor" directly then convert the other letters with changelettrs()
Currently you're converting letters, then converting words.
Simply swap those operations around:
changeWords();
changeLetters();
You will, of course, have to change the keys in words
as they will now apply before letter conversion.
You would have to keep track of the replaced words in your text, so their individual letters won't get replaced by changeLetters(). This is needlessly complicated. You'll be better off running your changeLetters() algorithm over the values in your "words" object ("cool", "dude", ...). That way, you can keep the string literals sane (non-leet), but you can keep using the code you are using right now. (Make sure you store the "words" in the global scope and only convert your "words" object once.)