javascript - 如何使用没有 id 的 Javascript 访问元素?
问题描述
我正在尝试使用 Javascript 访问没有 id 且具有共享类名的元素。我怎样才能成功地做到这一点?
我尝试使用document.getElementsbyClassName
属性,但由于类名由其他元素共享,这不起作用。
<a class="sharedClass anotherClass" href="www.mybooks.com" data-m="{"CN":"uniquename"}"> Proceed </a>
我希望能够Proceed
从上面的代码中单击元素。请注意,这uniquename
是该元素独有的。我想我们可以在这里以某种方式使用它,但我不太确定。
解决方案
正如@Buffalo 在他的评论中提到的那样,您可以获得共享类名的所有元素的列表,并遍历结果集并检查data-m
属性,直到找到您想要的:
var elements = document.getElementsByClassName("sharedClass");
var myElement;
for (var i = 0; i < elements.length; i++) {
if (elements[i].getAttribute("data-m") == '{"CN":"uniquename"}') {
myElement = elements[i];
}
}
console.log(myElement);
<a class="sharedClass anotherClass" href="www.mybooks.com" data-m='{"CN":"uniquename"}'> Proceed </a>
<a class="sharedClass anotherClass" href="www.mybooks.com" data-m='{"CN":"uniquename2"}'> Proceed </a>
您也可以通过利用querySelector
来更简洁:
var myElement = document.querySelector("[data-m='{\"CN\":\"uniquename\"}");
console.log(myElement);
<a class="sharedClass anotherClass" href="www.mybooks.com" data-m='{"CN":"uniquename"}'> Proceed </a>
<a class="sharedClass anotherClass" href="www.mybooks.com" data-m='{"CN":"uniquename2"}'> Proceed </a>
推荐阅读
- javascript - Vue 数据透视表标签
- angular - 我在材质对话框中有一个角度材质菜单。按 ESC 时,菜单和对话框都关闭。如何防止对话框在 ESC 上不关闭?
- c# - 如何重置方法变量?
- java - 当我使用 Content Assist 时 Eclipse 挂起
- python - 如果索引在字符串之外,如何返回 False?
- python - 在 tkinter 中手动调整树视图的大小
- python - 找到字符后如何从字符串中检索字符?
- python - 无法将图像从表单上传到 Django 管理模型
- .net - 如何使用 VisualStudio docker 调试器(launchSettings.json 配置文件)从 Docker 容器公开自定义端口(TCP)?
- javascript - 在数组方法中删除输入的问题 delete