在jQuery中访问具有相同ID的多个元素

Ang*_*.47 11 html jquery

如果我有这样的元素

<img src='0.jpg' id='images' />
<img src='...' id='myEle' />
<img src='...' id='myEle' />
Run Code Online (Sandbox Code Playgroud)

在jQuery中我可以做这样的事情

$(document).ready(function() {
    $('#myEle').mouseup(function () {

        $('#images').attr("src", myEle.getNumber() + ".jpg"); 
    }
}
Run Code Online (Sandbox Code Playgroud)

显然,每个元素都以与myEle数组编号对应的正确数字格式排序

Mat*_*all 49

不要创建包含具有重复ID的元素的标记.这会破坏你的东西,你会被一个比你说的速度更快的速度"goto".

使用代替:

<img src='0.jpg' id='images' />
<img src='...' class='myEle' />
<img src='...' class='myEle' />
Run Code Online (Sandbox Code Playgroud)

然后...

$(document).ready(function() {
    $('.myEle').live('mouseup', function () {

        $('#images').attr("src", myEle.getNumber() + ".jpg"); 
    });
});
Run Code Online (Sandbox Code Playgroud)

回复:OP评论

"我怎么知道按下哪个图像?"

使用this关键字:

$(document).ready(function() {
    $('.myEle').live('mouseup', function () {

        $('#images').attr("src", $(this).attr('src')); 
    });
});
Run Code Online (Sandbox Code Playgroud)

......我认为这就是你要找的东西.

迅猛


Cee*_*man 15

如果你继承了如此可怕的代码,你只能使用错误的输出,使用jQuery("[id=theidthatshouldbeaclassinstead]")或者jQuery("[id*=theidthatshouldbeaclassinstead]")由于某种原因有多个id.