Javascript 如何将div Id转换为类
我正在编写一个网站,可以检测用户是否在mac或pc上。我已经能够将其作为ID使用,但当我尝试将其作为类使用时,它不起作用。谁能帮忙吗Javascript 如何将div Id转换为类,javascript,html,css,Javascript,Html,Css,我正在编写一个网站,可以检测用户是否在mac或pc上。我已经能够将其作为ID使用,但当我尝试将其作为类使用时,它不起作用。谁能帮忙吗 <script language="JavaScript" type="text/JavaScript"> function func1() { var x = navigator.platform; if (x == "Win32" ) { document.getElementsByClassName("pcbrowser")
<script language="JavaScript" type="text/JavaScript">
function func1()
{
var x = navigator.platform;
if (x == "Win32" )
{
document.getElementsByClassName("pcbrowser").style.display = "block";
}
else if (x == "MacIntel")
{
document.getElementById("macbrowser").style.display = "block";
}
}
window.onload=func1
</script>
<span id="macbrowser" style="display:none">MAC</>
<span id="pcbrowser" style="display:none">Yosemite Backup Agent</p>
函数func1()
{
var x=navigator.platform;
如果(x==“Win32”)
{
document.getElementsByClassName(“pcbrowser”).style.display=“block”;
}
else if(x==“MacIntel”)
{
document.getElementById(“macbrowser”).style.display=“block”;
}
}
window.onload=func1
雨衣
约塞米蒂备份代理
调用函数的原因是:它返回一个节点列表,而不是单个元素。(尤其是“HTMLCollection”)
如果确实有一个这样的元素,那么:
document.getElementsByClassName("pcbrowser")[0].style.display = "block";
否则,您可以像遍历数组一样遍历节点列表。不完全像是一个数组;如果您计划对涉及的元素进行更改,那么事情可能会变得奇怪,因为API返回一个“活动”的节点列表——它动态地反映DOM的状态。但是,您可以将其内容复制到普通数组中:
var array = [].slice.call( theNodeList, 0 );
该函数被称为getElementsByClassName()
(复数“元素”),其原因是:它返回一个NodeList
,而不是单个元素。(尤其是“HTMLCollection”)
如果确实有一个这样的元素,那么:
document.getElementsByClassName("pcbrowser")[0].style.display = "block";
否则,您可以像遍历数组一样遍历节点列表。不完全像是一个数组;如果您计划对涉及的元素进行更改,那么事情可能会变得奇怪,因为API返回一个“活动”的节点列表——它动态地反映DOM的状态。但是,您可以将其内容复制到普通数组中:
var array = [].slice.call( theNodeList, 0 );
getElementsByClassName
返回一个包含该类所有元素的HTMLCollection,因此必须获取该HTMLCollection的第一个元素(getElementsByClassName('pcbrowser')[0]
)
或者您可以使用document.querySelector('.pcbrowser')
获取元素,点'.'代表类。如果站点必须在旧浏览器上工作,则不应执行此操作,因为它是自IE8以来唯一兼容的。getElementsByClassName
返回一个包含该类所有元素的HTMLCollection,因此您必须获取此HTMLCollection的第一个元素(getElementsByClassName('pcbrowser')[0]
)
或者您可以使用document.querySelector('.pcbrowser')
获取元素,点'.'代表类。如果站点必须在旧浏览器上运行,则不应执行此操作,因为它是自IE8以来唯一兼容的
var elements = document.getElementsByClassName("pcbrowser");
for (var i=0, item; i<elements.length; i++) {
elements[i].style.display = "block";
}
var elements=document.getElementsByClassName(“pcbrowser”);
对于(var i=0,item;i给你:
var elements = document.getElementsByClassName("pcbrowser");
for (var i=0, item; i<elements.length; i++) {
elements[i].style.display = "block";
}
var elements=document.getElementsByClassName(“pcbrowser”);
对于(var i=0,item;i,这里是一个示例
HTML
<p id="pcbrowser" class="pc" style="display:none">Yosemite Backup Agent</p>
<p id="macbrowser" class="mac" style="display:none">MAC</p>
祝你好运:)这里有一个例子
HTML
<p id="pcbrowser" class="pc" style="display:none">Yosemite Backup Agent</p>
<p id="macbrowser" class="mac" style="display:none">MAC</p>
祝你好运:)准确地说,返回a,与之略有不同。@Teemu ok,我对术语的理解很慢:)准确地说,返回a,与之略有不同。@Teemu ok,我对术语的理解很慢:)你的HTML有点问题:据我所知,你不能有分配了属性的空元素。只需键入
将不起作用,您必须声明
或类似的内容。另外,您需要在第一个id
上加引号。您的HTML有点问题:据我所知,您不能有指定属性的空元素。只需键入
将不起作用,您必须声明
或类似的内容。另外,您需要在第一个id
上加引号。谢谢,但我需要将该类添加到多个标记中。我知道您想要使用类(或ID)来定位元素并更改其样式。您需要添加/更改其类别吗?如果要更改元素的类,也可以这样做。在获取元素(从上述方法之一)后,可以更改其类。示例:element.className='newClassName'代码>谢谢,但是我需要将类添加到多个标记中。我知道您想要使用类(或ID)来定位元素并更改其样式。您需要添加/更改其类别吗?如果要更改元素的类,也可以这样做。在获取元素(从上述方法之一)后,可以更改其类。示例:element.className='newClassName'代码>