Piy*_*ush 5 html javascript jquery xpath
我是编程新手,必须在点击html元素时生成Xpath.例如:如果我点击了用户名的文本框那么它应该给我像xtml/head/body/tr [1]/table [2] .....等等xpath.主要的是我不能使用firebug,因为我的应用程序完全可以在IE上运行.我已经看到很多fxn来获取xpath并尝试集成它,但我没有得到返回值.一个简单的代码片段,我用jquery click()函数来检索值是不行的.事情是我无法传递函数中的html元素.我只从这个网站获取的xpath函数.我的代码如下.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>click demo</title>
<style>
p
{
color: red;
margin: 5px;
cursor: pointer;
}
p:hover
{
background: yellow;
}
</style>
<script src="http://code.jquery.com/jquery-1.9.1.js">
</script>
</head>
<body>
<p id ="test">First Paragraph</p>
<p>Second Paragraph</p>
<p>Yet one more Paragraph</p>
<script>
$( "#test" ).click(function() { var value= $(this).getXPath();
alert(value) });
function getXPath( element )
{
var val=element.value;
alert("val="+val);
var xpath = '';
for ( ; element && element.nodeType == 1; element = element.parentNode )
{
alert(element);
var id = $(element.parentNode).children(element.tagName).index(element) + 1;
id > 1 ? (id = '[' + id + ']') : (id = '');
xpath = '/' + element.tagName.toLowerCase() + id + xpath;
}
return xpath;
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
Mic*_* B. 23
将脚本更改为
$( "#test" ).click(function() { var value= getXPath( this );
alert(value) });
function getXPath( element )
{
var val=element.value;
//alert("val="+val);
var xpath = '';
for ( ; element && element.nodeType == 1; element = element.parentNode )
{
//alert(element);
var id = $(element.parentNode).children(element.tagName).index(element) + 1;
id > 1 ? (id = '[' + id + ']') : (id = '');
xpath = '/' + element.tagName.toLowerCase() + id + xpath;
}
return xpath;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13993 次 |
| 最近记录: |