我可以在firebug中看到我的锚标记的路径名的值,但是我很难访问它
<script type="text/javascript">
$(document).ready(function() {
$("a").click(function() {
alert("Hi");
$.ajax({
type: "POST",
url: "NickTracker.asmx/LogActivity",
contentType: "application/json; charset=utf-8",
data: "{'path': '" + attr('pathname') + "'}",
dataType: "json",
success: AjaxSucceeded,
error: AjaxFailed
});
});
});
function AjaxSucceeded(result) {
alert(result.d);
}
function AjaxFailed(result) {
alert(result.status + ' ' + result.statusText);
}
</script>
这是我的HTML
<body>
<form id="form1" runat="server">
<div>
Page 1<br />
<br />
<a href="http://manual.aspdotnetstorefront.com/p-157-xml-packages.aspx">Manual</a>
<br />
<a href="http://www.google.com/">googles</a>
<br />
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
</div>
</form>
</body>
当用户点击我想要返回的路径时,这不起作用 - attr('pathname')
答案 0 :(得分:5)
您需要引用this
对象和正确的属性,因此请将attr('pathname')
替换为$(this).attr('href')
,或者更简单地this.href
this.pathname
只能访问URL主机名后的任何值,如果您在站点上遍历根目录相关文件,则可以正常运行,但如果您尝试访问其他主机上的文件,则会中断。例如,对于href="http://www.google.com/finance"
,this.pathname
只会产生/finance
答案 1 :(得分:0)
如果您的意思是href属性或甚至是名为pathname的属性,则需要修复您的attr调用。你目前所拥有的是一个名为attr的函数,并尝试将其传递给一个字符串。请尝试:$(this).attr("href")
或$(this).attr('pathname')
或this.attribute("href")
。这取决于您是否正在查找添加到名为pathname或href属性的锚点的属性。
答案 2 :(得分:0)
据说,只需要像
那样$('a').attr('href');
现在,如果您的文档中有许多不同的<A>
标记,那么这将是一个问题。你必须区分你的意思。通常你用id或类来做。
$('a#myAnchor').attr('href');