2012-04-21 116 views
1

我將點擊事件添加到div內的跨度。這個事件的目標將變得可見,是第一個div,在div內,兩個div。我如何遍歷DOM來找到它?從跨度/跨度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是很重要的。

任何幫助將不勝感激。

+1

除了你正在尋找的div內的文本,還有什麼區別它們?如果他們是張貼的,並且不能改變,你應該在你的問題中說明。 – Lazerblade 2012-04-21 02:52:49

+0

在您的網頁中,是否有其他divs包含類似的結構?還有其他跨度是否也做同樣的事情? – Joseph 2012-04-21 02:54:11

回答

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> 
+0

謝謝,這確實有效。我不知道如何找到在DOM中前進的選擇器。我能找到的只有父母和最親近的人。這有助於。 – navarro 2012-04-21 04:16:13

2

如圖所示,代碼是這樣的:

$('span#here').on('click', function() { 
    $(this).closest('div').siblings(':contains(.targetDiv)').children().eq(0).show(); 
} 
1

Here's a sample我們抓住

$(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 
    }); 
});​ 
+0

我想這是一個可能的選擇。測試了代碼,但沒有奏效。如果我以這種方式工作,我會再試一次並更新你。謝謝。 – navarro 2012-04-21 04:17:16