Проблема jQuery: по какой-то причине не могу прочитать href attr - PullRequest
1 голос
/ 20 апреля 2011

не уверен, почему это возвращается неопределенным.Элемент существует, и я даже попытался изменить свойство 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 ]

3 голосов
/ 20 апреля 2011

Убедитесь, что вы модифицируете атрибут после полной загрузки 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 голосов
/ 20 апреля 2011

Ваш селектор, $ ("# 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>
0 голосов
/ 20 апреля 2011

Следующее работает для меня .. может быть, вы ломаете его, используя <вместо <</p>

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


});
...