- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,如果有人点击类似的链接(请原谅 Jade ):
div
ul
li
a(href="/foo") Bar
li
a(href="/baz") Foo
假设我点击了“Bar”
链接,我如何以编程方式在DOM
中找到被点击的节点?我可以使用像 tagName + insideHtml
之类的启发式方法,但是 DOM
本身必须有某种方法来识别元素,我可以使用这些方法稍后使用普通的 javascript/jquery 进行查询?
编辑:请我们假设我们事先不知道有关单击内容的任何信息,但在单击发生后我们确实有一个事件对象。是否有一个唯一的 event.target.something
?然后我可以说(在 jquery 中)$(event.target.something)
并正确选择正确的元素吗?
最佳答案
我不太确定“稍后查询”是什么意思 - 即,您想什么时候查询,以及您将使用该元素做什么?如果您想在同一 HTML 页面中访问被点击的元素(假设点击不会转到另一个页面),则可以在点击处理程序中使用 this
关键字来检索单击的元素,然后将其存储在稍后可以访问的某个变量中。
但是,如果您想保留单击元素的某种记录以供将来使用(例如,识别在 Selenium 测试用例中单击哪些元素),您可以通过 Xpath 唯一地识别 HTML 页面中的元素,假设DOM 在此过程中不会改变。例如,你可以这样做
$("a").click(function() {
var theClickedElement = $(this);
getXpath(theClickedElement); //Display the return value of this somewhere
}
您可以使用类似 this answer 的方法来实现 getXpath() (链接中的代码计算相对 Xpath - 您还可以获得仅包含标签名称的绝对 Xpath。有关 XPath 的更多信息,请查看 this tutorial
关于javascript - 有没有办法获取未用显式 id 属性标记的 html 元素的唯一 id/key?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21039514/
我是一名优秀的程序员,十分优秀!