Или сделайте я должен сделать что-то вроде этого:
var nodes = document.childNodes;
for (var i in nodes) {
if (window.getComputedStyle(nodes[i], null).getPropertyValue('someproperty') == 'somevalue')
// do stuff
}
Править:
Я не очень знаком с 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
свойство, не атрибут...
Как сказал ранее Вьет и кнут, вы можете использовать селекторы атрибутов и функции сопоставления строк: https://www.w3schools.com/xml/xsl_functions.asp#string .
Не путайте XPath с Javascript :)
У меня есть подсказка. Допустим, у вас есть узел:
<a href="http://google.com" style="padding: 10px; float: left; margin: 10px auto;">Look at me!</a>
Используйте fn: substring-after ("padding: 10px; float: left;", "float:")
, чтобы получить "left; margin: 10px авто; "
.
Затем используйте fn: substring-before ("left; margin: 10px auto;", ";")
, чтобы получить "left"
.
После этого используйте fn: normalize-space ("left")
, чтобы получить "left"
:)