2011-04-20 93 views
1

不确定为什么这会返回undefined。该元素存在,我甚至试图改变ID属性,以确保它不与名称空间中的任何内容冲突。jQuery问题:由于某种原因无法读取href attr

我也在导入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

确保你修改后的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将在解析时被调用,并且在那个时间点,您的定位标记尚未被解析。

0

以下对我有用..也许你打破它通过使用<而不是& 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')); 


}); 
0

你的选择,$( “#回”)选择的控制的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> 
+0

我不知道你怎么看这个问题,但这是完全不相关和无关的。 jQuery方法,比如'attr()'被编写来操作数组,所以索引第一个元素不会改变任何东西。那么,他的选择器应该返回1个元素,因为ID应该是唯一的。 – wsanville 2011-04-20 19:12:43

+0

是的,ID应该是唯一的,jquery选择器总是返回一个数组。根据OP何时需要运行代码,将其放入