Javascript 将getelementbyid设为复数
在下面代码的上下文(或任何地方)中,getelementbyid函数是否可以多次工作?或者我需要一个不同的函数,或者可能需要JqueryJavascript 将getelementbyid设为复数,javascript,jquery,html,css,getelementbyid,Javascript,Jquery,Html,Css,Getelementbyid,在下面代码的上下文(或任何地方)中,getelementbyid函数是否可以多次工作?或者我需要一个不同的函数,或者可能需要Jquery <script type="text/javascript"> window.onload = function() { var test = document.getElementById('test'); if (test) { test.className = 'unacti
<script type="text/javascript">
window.onload = function()
{
var test = document.getElementById('test');
if (test)
{
test.className = 'unactive';
test.firstChild.onclick = function()
{
if(this.parentNode.className == 'unactive') {
this.parentNode.className = 'active';
}
else
{
this.parentNode.className = 'unactive';
}
}
}
};
</script>
window.onload=函数()
{
var test=document.getElementById('test');
如果(测试)
{
test.className='unactive';
test.firstChild.onclick=函数()
{
if(this.parentNode.className=='unactive'){
this.parentNode.className='active';
}
其他的
{
this.parentNode.className='unactive';
}
}
}
};
我假设您希望使用ID列表对多个元素执行操作。(如果我错了,并且您实际上想要选择具有相同ID的多个元素,那么您做了一件坏事,因为ID应该是唯一的。在这种情况下,您应该使用类。)
在jQuery中,您可以使用逗号分隔的id选择器列表(如$(“#foo,#bar,#baz”)
完成此操作,并实现以下功能:
$("#foo, #bar, #baz").addClass("unactive")
.children(":first-child").click(function() {
var $this = $(this);
var $parent = $this.parent();
$parent.toggleClass("active unactive");
});
如果不使用jQuery,这个小函数将获取ID列表并生成节点数组:
document.getElementsByIdList() {
var results = [];
for(var i=0; i<arguments.length; ++i) {
results.push(document.getElementById(arguments[i]));
}
return results;
}
document.getElementsByIdList(){
var结果=[];
对于(var i=0;i你可以使用这个
document.getAllById = function(id){
if(document.all)
return document.all[id];
var elements = [],
all = document.getElementsByTagName('*');
for(var i=0;i<all.length;i++)
if(all[i].getAttribute('id')===id)
elements.push(all);
return elements;
}
document.getAllById=函数(id){
如果(全部文件)
返回文件。全部[id];
var元素=[],
all=document.getElementsByTagName('*');
对于(var i=0;iy),您的“id”值无论如何都应该是唯一的,所以这没有意义。您可以使用“class”值来对元素进行分类,以便您可以在组中找到它们。多值是什么意思?每个id应该只有一个元素。您试图实现什么?我想您要求的是class
您试图实现什么?还是您只想在一组id上迭代?例如varids=[“test1”,“test2”,“test3”];for(var i=0;i
这个函数如何与我的函数一起工作?它看起来很棒,但我对这个有点陌生。你能把它分解一下吗@apsillers@Shimmy我添加了更多的上下文,让您可以在当前代码中使用我的答案。
document.getAllById = function(id){
if(document.all)
return document.all[id];
var elements = [],
all = document.getElementsByTagName('*');
for(var i=0;i<all.length;i++)
if(all[i].getAttribute('id')===id)
elements.push(all);
return elements;
}