![](/img/trans.png)
[英]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.