jQuery对象“.attr('href')”返回undefined

时间:2015-07-07 21:41:32

标签: javascript jquery html asp.net

我的页面上有2个链接。我正在尝试在单击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>

我的剧本:

$('#lnkPopUp').click(
            function () {               
                var addressVal = $('#lnkAlt').attr('href');
                alert(addressVal);    
            }  

        );

另外,我的脚本位于<head>标签内。可能是在处理页面的其余部分并设置了href之前尝试获取href吗?

如果有任何其他信息可能有帮助,请告诉我们!

2 个答案:

答案 0 :(得分:0)

尝试设置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>

答案 1 :(得分:0)

如果您使用的是.Net Framework 3.5或更低clientIDMode,则无法使用,因为该属性已添加到.Net Framework 4

试试这个

   $('#lnkPopUp').click(
        function () {               
            var addressVal = $('#<%= lnkAlt.ClientID %>').attr('href');
            alert(addressVal);    
        }  
    );

并更改href属性使用此代码

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

您必须使用<%= lnkAlt.ClientID %>来获取生成的ID; ASP.Net在生成的HTML中更改控件的ID