javascript - HTML/Javascript : Selecting uncles/aunts

标签 javascript jquery css-selectors

所以我有一些代码,

<div class="chunk" id="">
    <div class="chunkContent">
        <div class="textLeft" ></div>
        <div class="textRight" ></div>
        <div class="notes border">Notes...</div>
    </div>
    <div class="tools fl">
        <div class="toggleNotes border">n</div>
        <div class="addChunk border">+</div>
    </div>
</div>

现在,div.tools 中嵌套的两个 div 是小按钮。 div.toggleNotes 我需要在 javascript/jquery 函数中选择 div.notes。 div.addChunk 我需要选择第一个div,div.chunk。目前,我正在这样做:

$(".addChunk").live('click', (function(){create_chunk(this.parentNode.parentNode)}))
$(".toggleNotes").live('click',function(){toggle_notes(this.parentNode.parentNode.firstElementChild.lastElementChild)})

有没有比将parentNotes和firstElementChild等串在一起更好(即更合适)的方法来做到这一点?我基本上是在 firebug 中查看 DOM 选项卡。

最佳答案

既然您用 jQuery 标记了您的问题,我假设您愿意使用它的遍历方法。这将确保跨浏览器支持。

如果是这样,你可以这样做:

&(".addChunk").live('click', function(){
   create_chunk($(this).closest('.chunk')); // Get closest ancestor with class 'chunk'
});

$(".toggleNotes").live('click',function(){
   toggle_notes($(this).parent().prev().find('.notes'));  // Get parent element, traverse
});                                                       //  to its previous sibling,
                                                          //  and find element with 'notes'
<小时/>

编辑:

或者,如果您愿意,也可以将 .closest() 用于 toggle_notes

$(".toggleNotes").live('click',function(){
   toggle_notes($(this).closest('.chunk').find('.notes'));
});  
<小时/>

相关 jQuery 文档:

关于javascript - HTML/Javascript : Selecting uncles/aunts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2939929/

相关文章:

javascript - 从 Webpack 1 迁移到 Webpack 2

javascript - HTML 按钮的点击事件

javascript - 通过 JS 按百分比重定向

javascript - 检索 jQuery Cookie 值

python-3.x - 使用 Selenium ,如何单击下拉菜单进入https://www.phptravels.net/的登录页面

javascript - 从按钮获取输入不起作用

jquery - 如何使用浏览器调整 jquery ui 对话框的大小

javascript - 将 "this"与 jQuery 选择器一起使用

html - 如何在不使用类或伪类的情况下选择表行?

javascript - 混合应用程序来计算本地目录下的文件数量?