在ajax响应中找到相同的元素
Posted
技术标签:
【中文标题】在ajax响应中找到相同的元素【英文标题】:Find the same element in ajax response 【发布时间】: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 位置(显示继承)。简短的回答,不可能。
【参考方案1】:
从链接的.parents()
,您可以收集id
s 和class
es 并从中创建一个选择器。
比如:
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,而只会上升到所需的元素。
【讨论】:
以上是关于在ajax响应中找到相同的元素的主要内容,如果未能解决你的问题,请参考以下文章
SecurityException 1000,即使使用相同的域