根据属性值在DOM中查找元素
你能告诉我,如果有任何DOM APIsearch具有给定属性名称和属性值的元素:
就像是:
doc.findElementByAttribute("myAttribute", "aValue");
更新:在过去的几年中,景观发生了巨大的变化。 你现在可以可靠地使用querySelector
和querySelectorAll
,看看Wojtek的答案是如何做到这一点的。
现在不需要jQuery依赖。 如果你使用的是jQuery,那么…如果你不是,那么你不需要依赖它来select属性。
在vanilla javascript中,这样做的方法不是很简单,但是有一些解决scheme可用。
你做这样的事情,循环遍历元素并检查属性
如果像jQuery这样的库是一个选项,你可以做得更容易一点,就像这样:
$("[myAttribute=value]")
如果该值不是一个有效的CSS标识符 (它有空格或标点符号等),则需要引用该值(可以是单个或双精度):
$("[myAttribute='my value']")
你也可以用start-with
, ends-with
, contains
等… 属性select器有几个选项 。
现代的浏览器支持本地的querySelectorAll
所以你可以这样做:
document.querySelectorAll('[data-foo="value"]');
https://developer.mozilla.org/en-US/docs/Web/API/Document.querySelectorAll
浏览器兼容性详情:
您可以使用jQuery来支持过时的浏览器(IE9及以上版本):
$('[data-foo="value"]');
FindByAttributeValue("href","something_value_you_need");
但是起初,定义这个函数:
function FindByAttributeValue(attribute, value) { var All = document.getElementsByTagName('*'); for (var i = 0; i < All.length; i++) { if (All[i].getAttribute(attribute) == value) { return All[i]; } } }
这里是一个例子,如何通过src属性在文档中search图片:
document.querySelectorAll("img[src='https://pbs.twimg.com/profile_images/........jpg']");
你可以使用getAttribute:
var p = document.getElementById("p"); var alignP = p.getAttribute("align");
https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute