Или я должен сделать что-то вроде этого:Могу ли я использовать XPath для фильтрации элементов по свойствам CSS?
var nodes = document.childNodes;
for (var i in nodes) {
if (window.getComputedStyle(nodes[i], null).getPropertyValue('someproperty') == 'somevalue')
// do stuff
}
Edit:
Я не очень хорошо знакомы с XPath. А «простой» удар на проблему было бы что-то вроде этого:
function test() {
var resultSet = document.evaluate("//*[@float='left']", document.body, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < resultSet.snapshotLength; i++) {
var element = resultSet.snapshotItem(i);
alert(element);
}
}
Но удивительно это не работает, так как float
это свойство, а не атрибут ...
Можете ли вы привести пример кода? Вы можете, конечно, искать внутри атрибута стиля. – Viet
Viet: Не могли бы вы привести пример того, как это сделать в XPath? Например, http://www.zvon.org/xxl/XPathTutorial/Output/example4.html ничего не говорит о поиске в атрибуте style. – int3
oops, эта ссылка должна была быть http://www.zvon.org/xxl/XPathTutorial/Output/ – int3