首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文档迭代:我应该说明哪些问题?

文档迭代:我应该说明哪些问题?
EN

Code Review用户
提问于 2016-02-11 11:00:01
回答 1查看 36关注 0票数 1
代码语言:javascript
复制
(function( d, w ){

    function showClimb( e ){
        var t = e.target;
        console.log( t.id );
        while( t.id !== 'document-body' ){
            t = t.parentNode;
            console.log( t.id );
        }
    }

    d.body.addEventListener( 'click', showClimb, false );

}( document, window ))

我只是编写了这个片段来测试是否选择了一个元素或它的子元素。这种方法有哪些风险?我应该包括哪些故障保存,以确保这个循环不会以某种方式被卡住?我正在为IE9及更高级别写作。

EN

回答 1

Code Review用户

发布于 2016-02-11 13:31:36

总之,我首先会担心变量名:D dwt。进来的人会说:“这是什么巫术?”

现在,t.id并不是一个保证。并非所有元素都可能具有id属性。你爬上去时可能会遇到空隙。尝试用element.tagName填充它。

接下来是你的硬编码document-body。似乎document-body是特定于您的代码。失去它将意味着无限的攀登。为什么不和document比较一下,用一种更有保障的方式达到顶峰呢?

这是我对它的看法。不是最理想的,而是做同样的事情。

代码语言:javascript
复制
function climb(element) {
  var elementName = element.id || element.tagName;
  return element === document ? [elementName] : climb(element.parentNode).concat(elementName);
}

document.body.addEventListener('click', function(e) {
  console.log(climb(e.target).join(' <- '));
}, false);
代码语言:javascript
复制
<a href="#" id="test">test</a>
票数 1
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/119613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档