html和javascript中具有不同类名的相同ID

Posted

技术标签:

【中文标题】html和javascript中具有不同类名的相同ID【英文标题】:Same id with diffent classname in html and javascript 【发布时间】:2013-12-04 07:31:15 【问题描述】:

我有一种情况

<label id="studentName" class="firstClass> </label>
<label id="studentName" class="secondClass> </label>
<label id="registerNumber" class="firstClass> </label>
<label id="registerNumber" class="secondClass> </label>

现在,我必须唯一标识每个标签,并使用 class 和 id 将 innerhtml 替换为某个值。

如何从 javascript/ios 方面实现这一点?

【问题讨论】:

ID 在文档中必须是唯一的。 id属性不是用来识别的吗? 【参考方案1】:

您想切换 Id 和类。你不能有 2 个相同的 ID 但你可以有多个同名的类。

<label id="firststudentName" class="studentName> </label>
<label id="secondstudentName" class="studentName> </label>
<label id="firstregisterNumber" class="registerNumber> </label>
<label id="secondregisterNumber" class="registerNumber> </label>

【讨论】:

【参考方案2】:

你可以使用

elements = document.getElementsByClassName(names); 

对结果进行循环,还有hasClass函数。

但通常 ID 应该是唯一的。

【讨论】:

【参考方案3】:

用 jquery 试试这个:

function checkUnique(className)
    var count = 0;
    var ids = '';
    $('.' + className).each(function(i)
        if(ids.indexOf($(this).attr('id')) != -1)
            $(this).attr('id',$(this).attr('id') + i);
        
        ids += $(this).attr('id');
    )

【讨论】:

hicurin,您是否可以在 javascript 中而不是在 jquery 中提供相同的方法。?我只使用 iPad 应用程序的 webview 中的 javascript。【参考方案4】:

这是无效的 HTML,请参见此处:http://www.w3schools.com/tags/att_global_id.asp

如果您正在迭代,例如许多学生,请确保使用循环作为 id,这样你就有了

id="studentName1" id="studentName2"

【讨论】:

以上是关于html和javascript中具有不同类名的相同ID的主要内容,如果未能解决你的问题,请参考以下文章

具有相同类名的不同css模块互相覆盖

使用来自不同 HTML 属性的项目填充数组

html 使用javascript计算具有类名的元素

如何使用Javascript获取具有类名的几个段落的值?

相同的正则表达式在 Java 和 JavaScript 中具有不同的结果 [重复]

具有相同命名空间但在不同程序集中的内部类?