问题理解toggleClass和jquery选择器



这是我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>

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

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

$(".search_results_footer_empty"([0]

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

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

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

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

关于toggleClass函数签出特定的答案,或签出jQuery文档。

最新更新