您好我正在尝试更改具有特定属性的任何HTML标记的显示属性。 但经过多次尝试后,我无法更改标签属性。我的代码如下所示
function getAllElementsWithAttribute(attribute)
{
var matchingElements = [];
var allElements = document.getElementsByTagName('*');
for (var i = 0; i < allElements.length; i++)
{
if (allElements[i].getAttribute(attribute))
{
// Element exists with attribute. Add to array.
matchingElements.push(allElements[i]);
}
}
return matchingElements;
}
tags = getAllElementsWithAttribute('data-shares');
for(i=0;i<tags.length;i++)
{
tags[i].style.display = "none";
}
HTML已低于标记
<div class="shareTools" data-shares="facebook" data-url="#" data-title="Facebook" data-description="Facebook">
<div class="shareToolsBox">
<ul class="shareToolsList">
<li data-share="facebook">
<span>Facebook</span>
</li>
</ul>
</div>
</div>
有没有人知道如何更改任何标有i-e数据共享标记的标记样式......
答案 0 :(得分:1)
将函数调用更改为:
tags = getAllElementsWithAttribute('data-shares');
这是关于JS Bin演示的工作:http://jsbin.com/ufogExo/1/具有<div>
属性的data-shares
都是隐藏的。
问题确实是你对函数调用参数的额外逗号。
答案 1 :(得分:0)
我相信这可以做你想要的:
function getAllElementsWithAttribute(attribute)
{
var items = document.querySelectorAll('['+attribute+']'),
i = items.length;
while ( i-- > 0 && (items[i].style.display = 'none') );
}
getAllElementsWithAttribute('data-shares');