1

我正在向 div 内的跨度添加点击事件。此事件的目标将变为可见,它是一个 div 内的第一个 div,向下两个 div。如何遍历 DOM 找到它?

也许使用代码会更清楚:

<div a>
    <h2>
        <span id="here">Click</span>
    </h2>
</div>

<div></div>

<div>
    <div class="targetDiv">This is the div we need to find</div>
    <div class="targetDiv">There are other divs with the same id, but we don't need to find   those</div>
    <div class="targetDiv">Not looking for this one </div>
    <div class="targetDiv">Or this one either</div>
</div>

我左右搜索,找不到答案。将事件仅限制在跨度之后的第一个 div 非常重要。

任何帮助将非常感激。

4

3 回答 3

2

如图所示,代码如下所示:

$('span#here').on('click', function() {
    $(this).closest('div').siblings(':contains(.targetDiv)').children().eq(0).show();
}
于 2012-04-21T02:57:28.693 回答
1

这是我们捕获的鱼的样本

$(function() {
    $('#here').on('click', function() {
        var div = $(this)          //the element clicked
            .closest('div')        //find nearest parent div
            .nextAll(':eq(1)')     //find the second next div
            .children(':eq(0)')    //find the first child of it
            .show();               //remove invisible cloak
    });
});​
于 2012-04-21T03:04:04.037 回答
0

这行得通。我提供了一个示例,您可以将其保存到 html 文件并自己进行测试

<style>
.targetDiv{display:none;}
</style>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>

<script type="text/javascript">
$(document).ready(function(){
$('#here').click(function(){
$('.targetDiv').first().show(); // or whatever you want
});
});
</script>

<div a>
    <h2>
        <span id="here">Click</span>
    </h2>
</div>

<div></div>

<div>
    <div class="targetDiv">This is the div we need to find</div>
    <div class="targetDiv">There are other divs with the same id, but we don't need to find   those</div>
    <div class="targetDiv">Not looking for this one </div>
    <div class="targetDiv">Or this one either</div>
</div>
于 2012-04-21T03:33:46.730 回答