簡體   English   中英

當父級也沒有id時,如何使用jQuery隱藏沒有類或ID的元素?

[英]How do I use jQuery to hide an element with no class or ID… when the parent has no id either?

我想使用jQuery處理給定搜索框中的事件。 我的問題是

  1. 我不知道如何正確構建選擇器,以便JQuery接受它。
  2. 我想感到困惑,因為我需要列表中的第二個元素並需要選擇該元素。

運行時HTML如下所示:(從Chrome Developer工具中改編而成,僅顯示了相關的類和ID。沒有要顯示的ID。)

<body class=km-ios7 km-7 km-m0 km-web km-black-status-bar km-vertical km-widget km-pane>
   <div class="km-widget km-view">

       <!-- Begin 3rd party control -->
       <div class=class="km-widget km-view">
          <div km-header>
          <div class="km-content km-widget km-scroll-wrapper">
             <div class=km-scroll-header>
             <div class=km-scroll-container>
                <div class="km-listview-wrapper">
                    <form class="km-filter-form">
                       <div class="km-filter-wrap">
                          <input type=search > 

我嘗試過的

由於我的活動沒有觸發,因此我認為我的選擇器錯誤。 完成“檢查元素”后,我打開了chrome開發人員工具。 工具的底部列出了用於該元素的所有父標記(沒有類或ID)。 作為測試,我嘗試使用以下方法隱藏搜索框:

 $("div").hide();   // hides everything...
 $("div div").hide(); // hides the wrong element on the page
 $("input").hide();  // nothing
 $(":input").hide();  // nothing... saw this example somewhere, don't understand it
 $("input:text").hide();  // nothing... saw this example (http://stackoverflow.com/q/17384218/328397), don't understand it

我查看了這份W3文檔 ,但沒有看到我想要的東西(除非我錯過了它)

任何對獲得正確選擇器的幫助將不勝感激。

在您鏈接的頁面中,它是defaultHomecontent下的第二個div,因此

$("#defaultHomeContent div:nth-child(2)")

您可以使用查找功能。 假設您像這樣在footer div中有輸入字段。

<div id="footer">
   <div>
     <div>
       <input type="text" name="text" value="Search" />
     </div>
   </div>
</div>

您可以像這樣使用選擇器$(“#footer input”)。hide()或$(“#footer”)。find(“ input”)。hide()或$('input [name = text]',' #footer')。hide();

您實際上想使用km-filter-wrap類隱藏div。

一種更安全的選擇是不處理選擇器,而是顯示/隱藏ListViewFilter的searchInput元素的searchInput元素:

var listView = $("#local-filterable-listview").kendoMobileListView({
    ...
}).getKendoMobileListView();
listView._filter.searchInput.parent().hide();

要么

listView.wrapper.find(".km-filter-wrap").hide();

通常,最好使用Kendo UI控件公開的元素,而不要手動構建查詢(因為它們可能在將來的版本中更改)。

您也可以使用自己的API方法擴展ListView小部件:

kendo.mobile.ui.ListView.fn.filterVisible = function(value) {
    var wrapper = this._filter.searchInput.parent();
    if (value) {
        wrapper.show();
    } else {
        wrapper.hide();
    }
};

那么你可以使用

listView.filterVisible(false); // hide the filter

根據您添加的內容。

你可以用

$("input[type='search']") 

作為選擇器。

看看是否有幫助。 這是一個例子

您還可以通過以下方式組合選擇器:

var $container = $("div.km-widget");
var $searchBox = $container.find("input[type='search']");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM