我正在开发 Firefox 扩展。在 Google Chrome 中,我使用以下方法获取元素:
var element = $('div[class^="ii gt"]')
它返回一个对象。然后我使用 element[0].children[0]
得到第一个元素的第一个子元素效果很好。
但在 Firefox 中,在同一个 HTML 页面上使用上述代码返回一个对象,但该对象不包含任何子元素。我还检查了长度为0。此外,我尝试了$("*[class^='ii gt']") and $("*[class*='ii gt']")
两者都返回 0 长度。
问题是什么?如何解决?
注意: <div>
的类包含动态前缀名称,如“ii gt aaa”和“ii gt bbb”。
更新:我只是尝试使用 document.getElementsByClassName('ii gt m1485f8bb9d512968 adP adO')[0].innerHTML
使用整个类名.它不起作用。但使用 content.document.getElementsByClassName('ii gt m1485f8bb9d512968 adP adO')[0].innerHTML
它有效。问题是什么?有人知道吗?
最佳答案
您可以只使用 $(".ii.gt")
。这将选择具有这两个类的所有元素,并且比使用正则表达式作为选择器快得多(prop^=*
是通过正则表达式)。
类的顺序应该无关紧要,那样会使代码变得非常困难。试想一下,你一年后回来,添加一个类,然后一切都停止工作,仅仅通过添加类?
关于javascript - $ ('div[class^="ii gt"]') 适用于 chrome 而不是 firefox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26438392/