本机Javascript选择
我需要使用本机Javascript,对于其中的一些,我需要选择多个属性(例如带有类和id的div)。这是我到目前为止得到的一个代码示例。该示例包含所有单个选项本机Javascript选择,javascript,Javascript,我需要使用本机Javascript,对于其中的一些,我需要选择多个属性(例如带有类和id的div)。这是我到目前为止得到的一个代码示例。该示例包含所有单个选项 var $ = function (selector) { var elements = []; var doc = document, i = doc.getElementsByTagName("div"), iTwo = doc.getElementById("some_id"), // #some_id i
var $ = function (selector) {
var elements = [];
var doc = document, i = doc.getElementsByTagName("div"),
iTwo = doc.getElementById("some_id"), // #some_id
iThree = doc.getElementsByTagName("input"),
// ^ Lets say I wanted to select an input with ID name as well. Should it not be doc.getElementsByTagName("input").getElementById("idname")
iFour = doc.getElementsByClassName("some_class"); // some_class
elements.push(i,iTwo,iThree,iFour);
return elements;
};
哦,是的,我忘了提到我根本不能使用querySelector…这取决于您要选择的属性。例如,您可以传递一个对象,如:
{tagname: 'div', class: 'foo'};
函数可能类似于:
function listToArray(x) {
for (var result=[], i=0, iLen=x.length; i<iLen; i++) {
result[i] = x[i];
}
return result;
}
function getByProperties(props) {
var el, elements;
var baseProps = {id:'id', tagName:'tagName'};
var result = [];
if ('tagName' in props) {
elements = listToArray(document.getElementsByTagName(props.tagName));
} else if ('id' in props) {
elements = [document.getElementById(props.id)];
}
for (var j=0, jLen=elements.length; j<jLen; j++) {
el = elements[j];
for (var prop in props) {
// Include all with tagName as used above. Avoids case sensitivity
if (prop == 'tagName' || (props.hasOwnProperty(prop) && props[prop] == el[prop])) {
result.push(el);
}
}
}
return result;
}
// e.g.
getByProperties({tagName:'div', className:'foo'});
函数列表阵列(x){
对于(var result=[],i=0,iLen=x.length;iquerySelector
/querySelector all
^^^您可以使用它,它允许您使用css选择器。但是请注意底部的浏览器兼容性。^^^基本上在IE中不起作用<8哦,是的,我忘了提到我根本不能使用querySelector。。。