我正在将一些代码从YUI移动到javascript,其中一些代码正在使用YUI的YAHOO.util.Dom.getElementsBy(函数)。我一直在阅读原型API文档并且无法找到相同的东西。它需要能够采取任意功能,而不仅仅是选择关闭CSS选择器等。任何人都可以向我建议在Prototype中实现这一目标的最佳方法吗?
答案 0 :(得分:0)
您可以使用美元 - 美元函数和过滤器函数:
var elts = $$("div.big").filter(myFunction);
答案 1 :(得分:0)
来自http://www.codingforums.com/showthread.php?t=83993的Jack Sleight基于getElementsByClassName的函数,该函数完成了我需要的东西,并且很容易扩展为使用任意函数:
document.getElementsByAttribute = function(attribute, value, tagName, parentElement) {
var children = ($(parentElement) || document.body).getElementsByTagName((tagName || '*'));
return $A(children).inject([], function(elements, child) {
var attributeValue = child.getAttribute(attribute);
if(attributeValue != null) {
if(!value || attributeValue == value) {
elements.push(child);
}
}
return elements;
});
}