【问题标题】:Find the same element in ajax response在ajax响应中找到相同的元素
【发布时间】:2013-12-15 21:57:17
【问题描述】:

元素:

var obj = $(this).parent().find('a');

// $(this) is a <UL> inside a <DIV>, but there can be multiple DIV>ULs on the page

接下来我使用 $.ajax() 获取一些 HTML。

此 HTML 是另一个包含链接父级和链接的页面

有没有办法在不对选择器进行硬编码的情况下找到该链接?


我能以某种方式获得obj 的完整选择器路径吗?喜欢

body > div#content > div:nth-child(4) > a

这样我可以根据这个选择器从 ajax 响应中找到那个

【问题讨论】:

  • 能否请您提供一些场景,以便于理解需求。?
  • obj.selector 将返回使用的选择器,而在您的情况下只会返回 a,所以不,如果没有适当的选择器,例如 ID,就没有简单的方法可以做到这一点。
  • 据我所知,您正在尝试以 CSS 选择器的形式获取相关元素的实际 DOM 位置(显示继承)。简短的回答,不可能。

标签: javascript jquery ajax jquery-selectors


【解决方案1】:

从链接的.parents(),您可以收集ids 和classes 并从中创建一个选择器。 比如:

Array.prototype.slice.call(link.parents()).reverse().map(function (element) {
  if (element.id) return "#" + element.id;
  if (element.className) return "." + element.className.split(" ").join(".");
  return element.tagName.toLowerCase();
}).join(" ");

虽然这需要改进,所以parents 不会上升到 HTML,而只会上升到所需的元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多