当前位置: 首页 > 面试题库 >

当ID包含方括号时,按ID查找DOM元素?

米子轩
2023-03-14
问题内容

我有一个DOM元素,其ID类似于:

something[500]

它是由我的Ruby onRails应用程序构建的。我需要能够通过jQuery获取此元素,以便我可以沿DOM向上移动以删除其父级的父级,该父级具有一个我事先无法访问的变量ID。

有人知道我该怎么做吗?以下代码似乎无效:

alert($("#something["+id+"]").parent().parent().attr("id"));

经过进一步检查,以下内容:

$("#something["+id+"]")

返回一个对象,但是当我在其上运行“ .html()”或“ .text()”时,结果始终为null或只是一个空字符串。


问题答案:

您需要转义方括号,以便不将其计为属性选择器。尝试这个:

alert($("#something\\["+id+"\\]").parent().parent().attr("id"));

请参见选择器中的特殊字符,特别是第二段:

要将任何元字符(例如!"#$%&'()*+,./:;<=>?@[\]^``{|}~)用作名称的文字部分,必须使用两个反斜杠对它进行转义:\\。例如,带有的元素id="foo.bar"可以使用选择器$("#foo\\.bar")



 类似资料:
  • 我有一个使用Selenium和Page对象模型的Java项目,需要找到ID以字符串“Cancel”结尾的按钮。我也尝试过使用正则表达式,我在stackoverflow上找到了一些包括XPath的解决方案,但考虑到网站的设计经常发生变化,我不使用XPath。我还发现,作为一种解决方案,您可以使用ends with CSS选择器: 但是我想利用页面对象模型并使用注释,因此省略By选择器。 如何选择页面

  • 问题内容: 以下定位技术之间有什么区别? 而且,从 性能角度来看 ,哪种方法是通过id定位元素的最快方法? 问题答案: 您的问题很难回答,肯定会给出一个结论性的答案。实际上,我很想将此问题标记为“太宽泛”,其他答案和评论也支持该问题。 以您的为例。纵观Selenium来源, 大多数 驱动程序只是获取您提供的ID,然后将其传递给有线协议: 如您所知,每个浏览器供应商都在单独的二进制文件中实现自己的有

  • 问题内容: 我想通过查找数据。我知道该数据存在并且存在(我已经用pymongo测试了它)。 但是下面的代码找不到它: 它只是给我一个回报。 但是我可以使用pytmongo和python找到它。 结果如下: 有人有什么主意吗? 编辑:我已经尝试了: 但我仍然有0: 问题答案: 您可以使用然后仅传递id值,或者使用,然后还必须使用字段名称指定一个值: 如果没有错误,则表示找到了文档。 如果您始终看到已

  • 我最近遇到了一个问题,我需要从窗口中使用的节点获取特定节点(最好是通过id)。Im使用FXMLLoader,所以第一个想法是搜索树结构FXMLLoader返回。 进一步的研究让我在场景类中查找方法,但是官方留档(https://docs.oracle.com/javase/8/javafx/api/javafx/scene/Scene.html#lookup-java.lang.String-)缺

  • 我正在使用selenium Java搜索不同的网站,我知道要查找特定的WebElement,有不同的方法,比如使用Xpath、使用Class或使用id。假设某网站具有如下所示的html结构 现在,如果我想从类名为“score”和“score_title”的div中提取文本,即1%的强度、43:1的情感、75%的激情和12%的到达,下面哪个选项最好。

  • 下面的链接提到我们可以通过给出ID找到元素...但我找不到。 https://github.com/appium/appium/blob/master/docs/en/write-running-appium/finding-elements.md 能请任何人解释一下在appium中找到元素的所有方法吗