Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将getelementbyid设为复数_Javascript_Jquery_Html_Css_Getelementbyid - Fatal编程技术网

Javascript 将getelementbyid设为复数

Javascript 将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

在下面代码的上下文(或任何地方)中,getelementbyid函数是否可以多次工作?或者我需要一个不同的函数,或者可能需要Jquery

<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;
}