javascript - 如何获取页面的相同ID标签的第二个标签
天蓬老师
天蓬老师 2017-04-11 11:12:09
[JavaScript讨论组]

有两个p标签,且两个p的ID相同,请教如何获取第二个标签,每次获取的都是第一个,碰到这种棘手的问题,必须两个ID相同。(也不可以动态添加name等属性区分,都是从后台一起调用出来的=_=),可以利用选择器之类的实现吗,谢谢哒~

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(7)
巴扎黑

如果你能控制这段html的内容,用class而不是id。我想不出用不了class的情况。

如果你不能控制html的内容,可以用以下代码(假定ID为'sameId')

// 方法1
Array.from(document.getElementsByTagName('p'))
  .filter(el => el.id === 'sameId')

// 方法2
document.querySelectorAll('#sameId')
迷茫

你可以的 p的id相同......
你不知道id是什么意思吗?
同时 p怎么着就不可以添加别的属性了?class行不行?

阿神

ID本身的唯一性与特殊性就注定他不可重复。
放demo出来。我不相信什么情况下必须要使用两个ID还不能添加自定义属性。另外如果是后台调用的数据,你也可以再处理下。如果后台返回的是html结构。。。

PHP中文网

谢邀

首先 在html元素中,ID是唯一的,你可以通过class来获取,不可以有多个相同的ID

高洛峰

$(id).eq(0)

巴扎黑

class类选择器肯定行啊,我不清楚你为什么要有两个相同的id,ID是指唯一的标示。你要选择第二个,直接document.getElementsByClassName(".类名")[1];就可以了

迷茫

首先,还是不要用相同id。

//第一行改为你自己的dom结构的选取方式。
        var elps = document.getElementsByTagName('p');
        var elp = null;
        var chooseId = 'test';
        var chooseNth = 2;
        var nth = 1;
        for(var i = 0 ;i<elps.length;i++){
            if(elps[i].id==chooseId&&nth==chooseNth){
                elp=elps[i];
                break;
            }else{
                nth++
            }
        }
        console.log(elp);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号