简体   繁体   English

jquery 每个 function 搜索栏内的文本

[英]jquery text inside each function search bar

It prints an empty string, supposed to print "Admin" and hide the elements that don't contains the searchBar text, keyUp is being triggeree, it just gives me an empty string when i console.log($(this).text()), searchBar is an input field to search things in a list它打印一个空字符串,应该打印“Admin”并隐藏不包含 searchBar 文本的元素,keyUp 被触发,当我 console.log($(this).text( )), searchBar 是一个输入字段,用于在列表中搜索事物

 const searchBar = $(".users-layout.search input") searchBar.on("keyup", () => { if (searchBar.val().= "") { $(".users-list-name").each(() => { if (.$(this).text().toLowerCase().includes(searchBar.val().toLowerCase())) { console.log($(this).text()) $(this).hide() } else { console.log($(this).text()) $(this).show() } }) } })
 <div class="users-list"> <a href="#" class="back-icon"> <i class="fas fa-arrow-left"></i></a> <div class="content"> <div class="details"> <span class="users-list-name">Admin</span> <p>Test Message</p> </div> </div> <div class="status-dot"><i class="fas fa-circle"></i></div> </div> <div class="users-list"> <a href="#" class="back-icon"> <i class="fas fa-arrow-left"></i></a> <div class="content"> <div class="details"> <span class="users-list-name">Admin</span> <p>Test Message</p> </div> </div> <div class="status-dot"><i class="fas fa-circle"></i></div> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

at the end i resolved like this最后我这样解决

searchBar.on("keyup", ()=>{
  if (searchBar.val() != "") {
    $(".users-list-name").each((i, obj)=>{
      console.log($(obj))
      if (!$(obj).text().toLowerCase().includes(searchBar.val().toLowerCase())){
        $(obj).parent().parent().parent().hide()
      } else {
        $(obj).parent().parent().parent().show()
      }
    }
  )
} else {
  $(".users-list").show()
}
})

this was refering to the window. this是指 window。 I fixed it so it grabs the actual element: let elem = $(".users-list-name")[index]我修复了它,所以它抓住了实际的元素: let elem = $(".users-list-name")[index]

 const searchBar = $(".users-layout.search input") searchBar.on("keyup", () => { if (searchBar.val().= "") { $(".users-list-name").each(index => { let elem = $(".users-list-name")[index] if (.$(elem).text().toLowerCase().includes(searchBar.val().toLowerCase())) { console.log($(elem).text()) $(elem).hide() } else { console.log($(elem).text()) $(elem).show() } }) } })
 <div class="users-layout"> <div class="search"> <input /> </div> </div> <div class="users-list"> <a href="#" class="back-icon"> <i class="fas fa-arrow-left"></i></a> <div class="content"> <div class="details"> <span class="users-list-name">Admin</span> <p>Test Message</p> </div> </div> <div class="status-dot"><i class="fas fa-circle"></i></div> </div> <div class="users-list"> <a href="#" class="back-icon"> <i class="fas fa-arrow-left"></i></a> <div class="content"> <div class="details"> <span class="users-list-name">Admin</span> <p>Test Message</p> </div> </div> <div class="status-dot"><i class="fas fa-circle"></i></div> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM