Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
Jquery getElementById-一个脚本标记内有多个实例?_Jquery_Html_Getelementbyid - Fatal编程技术网

Jquery getElementById-一个脚本标记内有多个实例?

Jquery getElementById-一个脚本标记内有多个实例?,jquery,html,getelementbyid,Jquery,Html,Getelementbyid,我当前的脚本用此行标识HTML中的一个元素 document.getElementById("one" ).src = images[random_no]; 是否有一种方法可以在多个ID上使用一个实例-在我的例子中是图像标记。此当前脚本仅影响一个具有其效果的图像。我想用一个脚本来影响代码中的多个图像 document.getElementById("one, two, three" ).src = images[random_no]; 我知道这是行不通的:只是想进一步说明:在Jquery中

我当前的脚本用此行标识HTML中的一个元素

document.getElementById("one" ).src = images[random_no];
是否有一种方法可以在多个ID上使用一个实例-在我的例子中是图像标记。此当前脚本仅影响一个具有其效果的图像。我想用一个脚本来影响代码中的多个图像

document.getElementById("one, two, three" ).src = images[random_no];
我知道这是行不通的:只是想进一步说明:

在Jquery中

$("#one,#two,#three").attr('src',images[random_no]);
尝试使用此代码

工作演示

图像的随机生成

工作演示

在Jquery中

$("#one,#two,#three").attr('src',images[random_no]);
尝试使用此代码

工作演示

图像的随机生成

工作演示

您可以使用

ID选择器“ID”

对于id选择器,jQuery使用JavaScript函数 document.getElementById,非常高效。当另一个 选择器附加到id选择器,例如h2pageTitle、jQuery 在将图元标识为 匹配

多选择器“选择器1、选择器2、选择器N”

您可以指定任意数量的选择器组合为一个选择器 后果这种多表达式组合器是一种有效的 选择不同的元素。中DOM元素的顺序 返回的jQuery对象可能不相同,因为它们将在 文件顺序。此组合符的另一种选择是.add 方法

您可以使用

ID选择器“ID”

对于id选择器,jQuery使用JavaScript函数 document.getElementById,非常高效。当另一个 选择器附加到id选择器,例如h2pageTitle、jQuery 在将图元标识为 匹配

多选择器“选择器1、选择器2、选择器N”

您可以指定任意数量的选择器组合为一个选择器 后果这种多表达式组合器是一种有效的 选择不同的元素。中DOM元素的顺序 返回的jQuery对象可能不相同,因为它们将在 文件顺序。此组合符的另一种选择是.add 方法

您需要在此处使用前缀为-id的-selector,以分隔

您需要在此处使用前缀为-id的-selector,以分隔


这里的其他答案向您展示了如何将这三个设置为同一个图像

如果您希望它们各自获得不同的图像,则:

$("#one, #two, #three" ).attr("src", function() {
    /* ...generate new random_no here... */
    return images[random_no];
});

如果将函数作为第二个参数传递给,则会为集合中的每个元素调用该函数,返回值将用于属性值。

此处的其他答案将向您展示如何将这三个参数设置为同一图像

如果您希望它们各自获得不同的图像,则:

$("#one, #two, #three" ).attr("src", function() {
    /* ...generate new random_no here... */
    return images[random_no];
});

如果将函数作为第二个参数传递到,则会对集合中的每个元素调用该函数,返回值用于属性值。

如果图像数量可变,并且不希望将每个图像的id插入数组,则可以尝试使用.each

然后需要将类添加到所需的图像中,而不是使用它们的ID

参考:

但是,如果您确实希望避免使用类,可以用逗号分隔ID:

$("#segement1,#segement2,#segement3").attr('src',images[random_no]);

如果图像数量可变,并且不想将每个图像的id插入数组,可以尝试使用.each

然后需要将类添加到所需的图像中,而不是使用它们的ID

参考:

但是,如果您确实希望避免使用类,可以用逗号分隔ID:

$("#segement1,#segement2,#segement3").attr('src',images[random_no]);

如果您不希望同一图像重复出现两次:


如果您不希望同一图像重复出现两次:


这会把他们都设置为同一个图像,这似乎不是OP想要的。是的,这并不能真正让它工作,我有5张图片我想旋转,所以用户不会看到他们两次…我已经设法让一张图片旋转,但我不想为每张图片做5个脚本标记…所以我试图找出如何用ID控制所有img你想要什么请告诉并解释我有5张图片分配@user1429247,所以使用数组检查我的答案方法将它们都设置为相同的图像,这似乎不是OP想要的。是的,这并不能真正让它工作,我有5张图片我想旋转,所以用户不会看到他们两次…我已经设法让一张图片旋转,但我不想为每张图片做5个脚本标记…所以我试图找出如何用ID控制所有img你想要什么请告诉并解释我有5张图片分配@user1429247,所以使用数组检查我的答案方法:你可以使用经典的each循环,我知道这里的速度稍微快一点,但是谁在乎3张图片呢@烤:颜色让我惊讶!但是,如果我们关心速度,我们最好只花一美元
再制造和微观优化:-我没想到。添加会更快,很高兴知道!无论如何,在性能方面,我不认为有什么东西能打败它:$[document.getElementById'one',document.getElementById'two',但谁知道呢?!。。。抱歉,我刚刚重温了你的JSPerf,你可以使用经典的each循环,我知道这里的速度稍微快一点,但谁在乎3张图片@烤:颜色让我惊讶!但是如果我们关心速度的话,花一美元就更好了。addtwo.addthree:不过,这还是一个过早的微观优化-我没想到。添加会更快,很高兴知道!无论如何,在性能方面,我不认为有什么东西能打败它:$[document.getElementById'one',document.getElementById'two',但谁知道呢?!。。。抱歉,我刚刚重新访问了您的jsperf
$("#one, #two, #three" ).attr("src", function() {
    /* ...generate new random_no here... */
    return images[random_no];
});
$(".class").each(function() {
    $(this).attr('src', images[random_no]);
});
$("#segement1,#segement2,#segement3").attr('src',images[random_no]);
var images = new Array('1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg');
$("#one, #two, #three").each(function(){
    var l = images.length,
        random_no = Math.floor(l*Math.random());    
    $(this).attr('src',images[random_no]);
    images.splice(random_no,1);    
});