检查是否使用jQuery选择了ID

时间:2013-02-26 07:54:06

标签: jquery

美好的一天。

我在jQuery中使用以下click函数

 $(function () {

            $("#areas ul a").click(function (event) {
                event.preventDefault();
                $("#areas ul li a").removeClass('activeAreas');
                $(this).addClass('activeAreas');
                $(".hidden").hide(200);
                $($(this).attr("href")).show(500)

            });

        });

我想做的是在那个循环中,检查特定元素是否有效,然后对此采取行动:

例如

 $("#areas ul a").click(function (event) {
                event.preventDefault();
                $("#areas ul li a").removeClass('activeAreas');
                $(this).addClass('activeAreas');
                $(".hidden").hide(200);
                $($(this).attr("href")).show(500)

                //I'm adding this... but it is not working

                if($(this).attr(href) = 'pretoriaDetail'){
                  alert('it works');
                }

            });

如何使if语句起作用??

由于

3 个答案:

答案 0 :(得分:2)

如果您想检查class是否适用于DOM,则.hasClass会有所帮助。

正式文件http://api.jquery.com/hasClass/

还有一件事在您的代码中出现错误。

if($(this).attr(href) = 'pretoriaDetail'){
          alert('it works');
}

必须是

if($(this).attr("href") == 'pretoriaDetail'){
          alert('it works');
}

因为=做的是为==分配值,而{{1}}比较它,而href必须包含在引号中。

答案 1 :(得分:1)

 $(function () {
        $("#areas ul a").click(function (event) {
            event.preventDefault();
            if(!$(this).hasClass('activeAreas')){
                $("#areas ul li a").removeClass('activeAreas');
                $(this).addClass('activeAreas');
                $(".hidden").hide(200);
                $($(this).attr("href")).show(500);
            }
        });

    });

答案 2 :(得分:0)

我想你应该试试这个:

var ID = $(this).attr("href");

$('#'+ID).show(500);

Declare a variable and use it as an id.

然后这应该是这样的:

      $(function () {
        $("#areas ul a").click(function (event) {
            var ID = $(this).attr("href");
            event.preventDefault();
            $("#areas ul li a").removeClass('activeAreas');
            $(this).addClass('activeAreas');
            $(".hidden").hide(200);
            $('#'+ID).show(500); // or this way $('[id="'+ID+'"]').show(500);
        });
     });