或者我必须做这样的事情:
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
是属性,而不是属性......
答案 0 :(得分:1)
答案 1 :(得分:1)
作为Viet&amp; knut之前说过,你可以继续使用属性选择器&amp;字符串匹配函数: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 auto;"
。
然后使用fn:substring-before(" left; margin: 10px auto;", ";")
获取" left"
。
在此之后,使用fn:normalize-space(" left")
获取"left"
:)