【问题标题】:jQuery Problem: Can't read href attr for some reasonjQuery 问题:由于某种原因无法读取 href attr
【发布时间】:2011-04-21 02:30:35
【问题描述】:

不确定为什么返回未定义。该元素存在,我什至尝试更改 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>

【问题讨论】:

    标签: jquery href


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      以下内容对我有用..也许您使用

        <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'));
      
      
      });
      

      【讨论】:

        【解决方案3】:

        您的选择器 $("#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>
        

        【讨论】:

        • 我不确定您是如何阅读这个问题的,但这完全不相关且不相关。 jQuery 方法,例如attr() 被编写为对数组进行操作,因此索引第一个元素不会改变任何内容。那,他的选择器无论如何都应该返回 1 个元素,因为 ID 应该是唯一的。
        • 是的,ID 应该是唯一的,jquery 选择器总是返回一个数组。根据 OP 希望代码运行的时间,将其放在
        猜你喜欢
        • 1970-01-01
        • 2015-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多