问题理解toggleClass和jquery选择器

时间:2018-12-16 09:10:43

标签: javascript php jquery ajax html5

这是我的JS文件中的getLiveSearchUsers函数,我听不懂,请有人帮我。 我不能理解选择器[0],这里的toggleClass是做什么的?

$.post("includes/handlers/ajax_search.php", {query:value, userLoggedIn: user}, function(data) {

    if($(".search_results_footer_empty")[0]) {
        $(".search_results_footer_empty").toggleClass("search_results_footer");
        $(".search_results_footer_empty").toggleClass("search_results_footer_empty");
    }

    $('.search_results').html(data);
    $('.search_results_footer').html("<a href='search.php?q=" + value + "'>See All Results</a>");

    if(data == "") {
        $('.search_results_footer').html("");
        $('.search_results_footer').toggleClass("search_results_footer_empty");
        $('.search_results_footer').toggleClass("search_results_footer");
    }else {
console.log("data is not empty. data is '" + data + "'");

}

下面是html部分。

        <div class="search_results">
        </div>

        <div class="search_results_footer_empty">
        </div>

2 个答案:

答案 0 :(得分:0)

.toggleClass 方法基本上是将类删除或添加到html元素。在您的实例中,它是具有 .search_results_footer 类的元素。

关于选择器[0],我假设您正在引用:

  

$(“。search_results_footer_empty”)[0]

这基本上意味着对象本身在数组中,而代码本身正在引用数组中的第一个元素。

答案 1 :(得分:0)

当您通过jQuery选择器$('.element')选择元素时,您可以引用满足选择器的所有jQuery元素以及HTML元素数组,就像您可以通过document.querySelector('element')访问它们一样。

访问jQuery元素和HTML元素之间的区别在于:

  1. 您不能在HTML元素上使用jQuery函数
  2. 为了从jQuery选择器访问HTML元素,请使用$('.element')[i],其中i是HTML元素数组的第n个元素。

关于toggleClass函数,检出merpacific的answer,或检出jQuery docs