Even a task as simple as this can be complicated without jQuery at our disposal. In plain JavaScript, we could add the highlightedclass as shown in the following code snippet: 复制代码 代码如下: window.onload = function() { var divs = document.getElementsByTagName("div"); for (var i = 0; i < divs.length; i++) { if (hasClass(divs[i], "poem-stanza") && !hasClass(divs[i], "highlight")) { divs[i].className += " highlight";
} } function hasClass( elem, cls ) { var reClass = new RegExp(" " + cls + " "); return reClass.test(" " + elem.className + " "); } };
Despite its length, this solution does not handle many of the situations that jQuery takes care of for us in Listing 1.2, such as the following: • Properly respecting other window.onloadevent handlers • Acting as soon as the DOM is ready • Optimizing element retrieval and other tasks with modern DOM methods 尽管很长,但是这个解决方案依然没有处理很多jquery在列表1.2中为我们做到的一些事情,比如下面的这些: 1、合适的处理其他的window.load事件 2、在DOM结构准备好的时候开始行动。 3、使用现代的DOM方法优化元素查找和其他任务。
We can see that our jQuery-driven code is easier to write, simpler to read, and faster to execute than its plain JavaScript equivalent.