What is new in IE9 - Overlapping Tags
מה ההתנהגות לפי התקן כשתגים מקוננים אחד בתוך השני.
מה קורה כשיש לנו את ה - html הבא
You should be aware of how <b>this <i>affects</b> script</i>.
כמובן שהמילים this affects יופיעו במודגש והמילים affects script יופיעו בהטייה.
אבל כשננסה לגשת אליהם בסקריפט, למשל הרצת הקוד הבא
var elms = document.getElementsByTagName("i");
ב - IE8 יוחזר אלמנט אחד שה - innerText שלו הוא: affects script
ואילו ב - IE9 יוחזרו שני אלמנטים (כל מילה היא אלמנט) מכיוון שהתג i מקונן ב - b.
(אם היו שואלים אותי - ההתנהגות של IE8 נראית לי יותר הגיונית, חבל שלא אני קובע את התקן)
הרצת הקוד הבא
function load() {
var elms = document.getElementsByTagName("i");
alert(elms.length);
for (var i = 0; i < elms.length; i++) {
var elm = elms[i];
alert(elm.innerText);
if (elm.parentNode.tagName.toLowerCase() == "b")
elm.style.color = "red";
}
}
ב - IE8 תצבע כמובן באדום את סוף המשפט ואילו ב - IE9 רק המילה affects תצבע באדום.