6

在 YUI 文档中;http://yuilibrary.com/yui/docs/api/files/dom_js_dom-create.js.html

if (nodes.length === 1) { // return single node, breaking parentNode ref from "fragment"
            ret = nodes[0].parentNode.removeChild(nodes[0]);
        } else if (nodes[0] && nodes[0].className === 'yui3-big-dummy') { // using dummy node to preserve some attributes (e.g. OPTION not selected)
            if (nodes.length === 2) {
                ret = nodes[0].nextSibling;
            } else {
                nodes[0].parentNode.removeChild(nodes[0]); 
                ret = Y_DOM._nl2frag(nodes, doc);
            }
        } else { // return multiple nodes as a fragment
             ret = Y_DOM._nl2frag(nodes, doc);
        }

第 110 行说

} else if (nodes[0] && nodes[0].className === 'yui3-big-dummy') { // 使用虚拟节点来保留一些属性(例如 OPTION 未选择)

这到底是什么意思?我不明白为什么会有一个名为“yui3-big-dummy”的类

4

1 回答 1

2

这是因为他们在自己内部的东西上进一步使用了这个类,他们只是不想把一个有人实际使用的类放在那里。您会在第 317 行注意到他们正在使用该类将一些东西放在那里,并且他们正试图针对该类。这只是一些您通常不必担心的内部问题。

return Y_DOM.create('<select><option class="yui3-big-dummy" selected></option>' + html + '</select>', doc);
于 2012-09-17T01:26:14.420 回答