[英]Selecting by data- attribute with jQuery - works in chrome, not firefox. Alternative?
[英]XPath selecting attribute fails on Chrome
这是我与expect.js
运行的一个小测试:
describe('xpath', function () {
it('finds attribute nodes', function () {
$(document.body).append('<string fooBar="bar"><data id="xyz"></data></string>');
var xyz = document.getElementById('xyz');
expect(xyz).not.to.be(null);
var nodes = document.evaluate('../@fooBar', xyz, null, XPathResult.ANY_TYPE, null);
var element = nodes.iterateNext();
expect(element.nodeValue).to.equal('bar');
});
});
我正在使用Testacular在Chrome和Firefox上对其进行测试,尽管它在Firefox上通过了测试,但在Chrome上却失败了,并显示一个错误,指出那个element
为null
。 对我来说真正疯狂的部分是,如果我将fooBar
更改为foo
,它将在两个系统上传递。 如果我使用Foo
而不是foo
Chrome也会崩溃。 换句话说,Chrome中的XPath查询似乎在搜寻属性中包含大写字母时中断。 这是正常行为吗? 我想念什么吗? 还是这是Chrome中的错误?
我添加了Google的Wicked Good XPath,现在Internet Explorer也可以使用,但是Chrome仍然无法运行。
如果实际属性具有上限,则XPath查询可在Chrome上运行,但XPath值均为小写。
您在使用XHTML吗? 如果是这样,则XHTML规范规定所有元素和属性名称都必须小写 。
您可能会发现Chrome仅适合以此为基础评估XPath,而其他浏览器更符合XML(在任何情况下均有效)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.