2017-04-21 48 views
0

我如何運行例如只爲特定div/s使用此javascript。由於只爲特定div/s運行javascript

var getAllAnchorTags = document.querySelectorAll('a'); 
getAllAnchorTags.forEach(function(item){ 
var creatLink =item.getAttribute('href')+item.textContent; 
item.setAttribute('href',creatLink) 
}) 

在這種情況下,所有的div包裹格

<div id=wrap> 
<div id=tab1>...</div> 
<div id=tab2>...</div> 
</div> 
+0

的方式你可以嘗試用selectiong'ID ='wrap''您的DIV,然後執行'forEach'在它的所有孩子中 – Lixus

+0

你只想選擇''''div' wrap'的後裔? –

+0

是的所有div下身份證包裝 – LamiX

回答

3

querySelectorquerySelector內接受所有CSS Selectors,你可以爲CSS規則中使用。

所以只選擇a S中的的#tab1使用decsendants這樣的:

var getAllAnchorTags = document.querySelectorAll('#tab1 a'); 
1

您可以根據div的你想通過分配他們一些選擇器類(divs-to-work-on過濾你的js代碼)。

var getAllAnchorTags = document.querySelectorAll('.divs-to-work-on a'); 
 
getAllAnchorTags.forEach(function(item) { 
 
    var creatLink = item.getAttribute('href') + item.textContent; 
 
    item.setAttribute('href', creatLink) 
 
})
<div id=wrap> 
 
    <div id=tab1 class='divs-to-work-on'>...</div> 
 
    <div id=tab2>...</div> 
 
    <div id=tab3 class='divs-to-work-on'>...</div> 
 
</div>

現在,您的代碼將僅適用於具有類divs-to-work-on的div。

+0

喲,這可能是它!謝謝:) – LamiX

+0

不用擔心,如果答案適用於你,請確保upvote和accept,因爲它被標記爲已解決;) –

0

與jQuery你可以參考具體的股利細分值,像這樣

$('#wrap').find('div').each(function(){ 
 
    var innerDivId = $(this).attr('id'); 
 
    alert(innerDivId) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script> 
 

 
<div id=wrap> 
 

 
wrap 
 

 
<div id=tab1>one</div> 
 
<div id=tab2>two</div> 
 
</div>