Проблема со скрытием ссылки через jQuery

#jquery

#jquery

Вопрос:

HTML

 <a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$lnkbtnPrevious','')" class="pager-link" id="ctl00_ContentPlaceHolder1_lnkbtnPrevious">Previous</a>
<a class="pager-link" disabled="disabled" id="ctl00_ContentPlaceHolder1_lnkbtnNext">Next</a>
  

JS

 <script type="text/javascript">
        $(document).ready(function() {
            if ($("#ctl00_ContentPlaceHolder1_lnkbtnPrevious").attr("href") == "") {
                $("#ctl00_ContentPlaceHolder1_lnkbtnPrevious").css("display", "none");
            }
            if ($("#ctl00_ContentPlaceHolder1_lnkbtnNext").attr("href") == "") {
                $("#ctl00_ContentPlaceHolder1_lnkbtnNext").css("display", "none");
            }
        });
    </script>
  

Я пытаюсь скрыть ссылку, если она не содержит href. но этот код не работает

Ответ №1:

attr('attributename') вернет undefined , а не пустую строку, когда атрибут attributename не найден.

просто сделайте

 if (!$("#ctl00_ContentPlaceHolder1_lnkbtnNext").attr("href")) {
   //.... your code ....
}
  

Ответ №2:

Используйте:

 $("#ctl00_ContentPlaceHolder1_lnkbtnPrevious").hide();
  

вместо изменения css.

И, как указал Стефано, используйте if(!$('mydiv').attr('foo')) для проверки наличия атрибута, не сравнивайте с пустой строкой.

Кроме того, поправьте меня, если я ошибаюсь, но некоторые браузеры могут вести себя странно, если ссылка не имеет href, такое поведение может зависеть от doctype.