jQuery问题:由于某种原因无法读取href attr

时间:2011-04-20 18:18:40

标签: jquery href

不确定为什么这会返回undefined。该元素存在,我甚至尝试更改ID属性,以确保它与命名空间中的任何内容都不冲突。

我也在导入jquery,所以这不是问题。双括号用于Django上下文变量

有什么想法吗?

<script type="text/javascript">

//return to search page with appropriate GET parameters
var parameters=window.location.search +'';

$('#back').attr('href',$('#back').attr('href')+parameters);



</script>   

<div id="content"> 
<a id="back" href="{{site}}search/"><< Return to Search Results </a>
</div>

3 个答案:

答案 0 :(得分:3)

确保在完全加载DOM后修改属性,方法是将代码放入$(document).ready()的调用中:

<script type="text/javascript">
    $(document).ready(function()
    {
        var parameters=window.location.search +'';
        $('#back').attr('href',$('#back').attr('href')+parameters);
    });
</script>

如果script标记位于body内,则问题中显示的代码将失败,因为Javascript将在解析时被调用,并且在那个时间点,您的锚标记尚未解析。

答案 1 :(得分:0)

以下对我有用..也许你是通过使用&lt;打破它。而不是&amp; lt;

  <div id="content"> 
    <a id="back" href="{{site}}search/">&lt;&lt;Return to Search Results </a>
    </div>
        <div id='result'>result</div>

$(document).ready(function(){


    var parameters=window.location.search +'/';

$('#back').attr('href',$('#back').attr('href')+parameters);
   $('#result').html($('#back').attr('href'));


});

答案 2 :(得分:0)

您的选择器$(“#back”)选择 ARRAY 控件。您想要解决数组的[0]元素,如下所示:

 <script type="text/javascript">

        function hrefOnClick() {
            var myA = $("#testHref");
            alert(myA[0].href);

        }

    </script>

表示这样的锚标记:

<a id="testHref" href="http:\\www.stackoverflow.com" onclick="hrefOnClick();">click me</a>