Javascript jQuery对象“.attr('href')”返回未定义的

Javascript jQuery对象“.attr('href')”返回未定义的,javascript,jquery,html,asp.net,Javascript,Jquery,Html,Asp.net,我的页面上有两个链接。我试图在单击linkA时更改linkB的文本。但是,每当我尝试获取linkB的'href'值时,都会得到一个未定义的错误。我在这里也经历了很多其他的事情,但都没有成功。如果我遗漏了一些明显的东西,请原谅 <a ID="lnkPopUp" runat="server" style="text-decoration: underline; text-align: right" target="_blank"> New Wind

我的页面上有两个链接。我试图在单击linkA时更改linkB的文本。但是,每当我尝试获取linkB的'href'值时,都会得到一个未定义的错误。我在这里也经历了很多其他的事情,但都没有成功。如果我遗漏了一些明显的东西,请原谅

        <a ID="lnkPopUp" runat="server" style="text-decoration: underline; text-align: right" target="_blank">
            New Window
        </a>
        <br/>
        <a ID="lnkAlt" runat="server" style="text-decoration: underline; text-align: right" target="_blank" href="http://www.google.com">
            Not this one
        </a>
还有,我的脚本在标签里。它可能是在处理页面的其余部分并设置href之前尝试获取href吗

请让我知道如果任何其他信息可能会有所帮助

尝试设置clientIDMode,以便jquery使用正确的ID

<a ID="lnkAlt" clientIDMode="static" runat="server" style="text-decoration: underline; text-align: right" target="_blank" href="http://www.google.com">
    Not this one
</a>
如果您使用的是.Net Framework 3.5或更低版本,则ClientMode将无法工作,因为该属性是在.Net Framework 4中添加的

试试这个

   $('#lnkPopUp').click(
        function () {               
            var addressVal = $('#<%= lnkAlt.ClientID %>').attr('href');
            alert(addressVal);    
        }  
    );
要更改href属性,请使用以下代码

$('#<%= lnkAlt.ClientID %>').attr("href", "http://stackoverflow.com/")

您必须使用以获取生成的ID;ASP.Net在生成的HTML中更改控件的ID

你在哪里设置href值??试试这个是的,我有预感它可能也是ClientIdMode。如前所述,尝试将其设置为静态,使用开发人员工具或Firebug实际查看呈现的HTML并查找LNKPOUP/LNKAT控件的实际名称。
$('#<%= lnkAlt.ClientID %>').attr("href", "http://stackoverflow.com/")