用jQuery返回XPath位置?需要一些功能的反馈

前端之家收集整理的这篇文章主要介绍了用jQuery返回XPath位置?需要一些功能的反馈前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对于以下项目,我将使用PHP和jQuery.

我有以下代码

$('*').onclick(function(){

});

一旦用户点击了一个元素,我希望它返回该元素的XPath位置.

我想要做的本质上是一种过滤系统,有点jQuery的帮助.

PHP将使用PHP从外部源检索文档,使用jQuery用户单击该文档的元素/相关部分.此jQuery函数将返回用户单击并存储并与该文档关联的XPath位置.

将来,如果使用XPath更新该文档,PHP将仅检索用户先前选择的XPath而不是整个文档.

我将需要这个jQuery函数来返回元素属性,例如< p>中的标题.或者在锚链接中的href位置.

长话短说:我的问题是,这在jQuery中甚至可能吗?返回所选元素的XPath位置及其属性?我不知道这在jQuery中会是什么样子,所以任何帮助都会受到赞赏.

任何其他额外的反馈也会很棒.据我所知,我可能正在使用错误的工具……或者其他东西.谢谢.

解决方法

您可以使用 .parents()方法获取所单击元素的所有祖先.
$(document).delegate('*','click',function(){
  var path = $(this).parents().andSelf();
  return false;
});

然后提取您想要的信息.

使用.delegate方法处理事件,因此您无需将其附加到所有元素.并且还使用.andSelf()方法在路径中包含被单击的项目.

一个更完整的例子

$(document).delegate('*',function(){
    var path = $(this).parents().andSelf();
    var xpath='/';
    for (var i = 0; i < path.length; i++)
    {
        var nd = path[i].nodeName.toLowerCase();
        xpath += '/';
        if (nd != 'html' && nd != 'body')
        {xpath += nd+'['+ ($(path[i-1]).children().index(path[i])+1) +']';}
        else
        {xpath += nd;}                    
    }
    alert(xpath);
    return false;
});

http://www.jsfiddle.net/gaby/hsv97/1/播放测试html的示例

显示了带有id和类的更新:http://www.jsfiddle.net/gaby/hsv97/2/

猜你在找的jQuery相关文章