2011-03-28 73 views
0

我可以看到萤火虫我的锚标记的路径名的值的路径,但我有一个很难访问它访问一个锚标记

<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 /> 
&nbsp;<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(“路径”)

+0

你是什么意思的“路径名”,“HREF”属性? – 2011-03-28 18:26:50

+0

@Pekka我尝试了href,仍然没有得到任何东西。我的语法一定是错的 – 2011-03-28 18:28:12

回答

5

您需要引用this对象和正确的属性,所以更换attr('pathname')$(this).attr('href'),甚至更简单this.href

this.pathname的URL主机名,如果你遍历你的站点根目录相对的文件这是罚款后只能访问任何价值,但如果你试图访问的文件将打破在不同的主机上。例如,对于href="http://www.google.com/finance"this.pathname将导致刚刚/finance

+1

我不明白他从哪里得到那个“路径名”的想法:)它在代码中没有地方。 – 2011-03-28 18:29:46

+0

@Pekka〜现在我想知道......它是否在Firebug中说“路径名”? – 2011-03-28 18:32:11

+0

如果您在“this”节点下的萤火虫中进行调试,那么有一个属性叫做“pathname – 2011-03-28 18:32:55

0

如果你指的是href属性,甚至一个属性,叫做路径,您将需要修复您的ATTR电话。你现在有什么会寻找一个名为attr的函数,并尝试传递一个字符串。试试:$(this).attr("href")$(this).attr('pathname')this.attribute("href")。这取决于您是否正在查找添加到名为pathname或href属性的锚点的属性。

0

据称,所需要的是只是像

$('a').attr('href'); 

现在,如果您在文档中有很多不同的<A>标签,那将是一个问题。你必须用你的意思来区分标签。通常你用id或class来做。

$('a#myAnchor').attr('href');