通过jQuery隐藏链接的问题

时间:2011-05-03 08:44:50

标签: 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。但是这段代码不起作用

2 个答案:

答案 0 :(得分:3)

当找不到属性attr('attributename')时,

undefined将返回attributename,而不是空字符串。

简单地做

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

答案 1 :(得分:1)

使用:

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

而不是修改css。

正如Stefano指出的那样,使用if(!$('mydiv').attr('foo'))检查属性是否存在,不要与空字符串进行比较。

另外,如果我错了,请纠正我,但如果链接没有href,某些浏览器可能会很有趣,这种行为可能取决于doctype。