2017-04-21 47 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>