如何使用jQuery隐藏没有类或ID的元素…当父节点也没有id时
How do I use jQuery to hide an element with no class or ID... when the parent has no id either?
我想使用jQuery来处理给定搜索框中的事件。我的问题是
- 我不知道如何正确地构建选择器,使JQuery接受它。
- 我想我弄糊涂了,因为我需要列表中的第二个元素,并且需要选择它。
运行时的HTML看起来像这样:(改编自Chrome开发工具,只显示相关的类和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 >
What I've try
因为我的事件没有触发,我假设我的选择器是错误的。我打开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)")
你实际上是想用km-filter-wrap
类隐藏div。
一个更安全的选择可能是不处理选择器,而是显示/隐藏ListViewFilter的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
可以使用find函数。假设您在页脚div中有这样的输入字段:
<div id="footer">
<div>
<div>
<input type="text" name="text" value="Search" />
</div>
</div>
</div>
您可以使用选择器这样的美元("#页脚输入")hide()或$(" #页脚");("输入")hide()或$("输入[name =文本]","#页脚")hide ();
根据您添加的内容。
你可以用
$("input[type='search']")
作为选择器。
看看是否有帮助。下面是一个例子
你也可以这样组合选择器:
var $container = $("div.km-widget");
var $searchBox = $container.find("input[type='search']");
相关文章:
- 在自定义截面树中获取父节点
- 如何避免在取消选中子节点时取消选中父节点
- 如果未选中子节点,则未选中父节点
- 仅使用某些子节点访问xml中父节点的子节点
- 如何以编程方式在 jsTree 中选择一个节点并打开所有父节点
- 使用Javascript设置带有子节点的父节点的类's文本等于.
- 如何确定父节点是否有子节点
- Javascript在没有jQuery的情况下获取X父节点
- 如何从wijmo-flex网格的树视图中的节点转到父节点
- 在没有 jquery 的情况下更改子节点(父节点具有 ID)中的链接文本
- JQuery 选择父节点并更改其类名
- 如何删除javascript中的节点,而不需要父节点为null
- 如果未全部选中子节点,则取消选中父节点
- 如何在JavaScript中删除子节点触发点击事件时的父节点
- 如何访问所选内容的父节点以引发元素
- 获取单击的元素父节点的数组编号
- 如何将子节点添加到父节点,而无需视图跳转到加载元素的位置
- Jstree:在单击父节点时,只有所有子元素应该被选中,父节点不应该被选中
- 如何使用jQuery隐藏没有类或ID的元素…当父节点也没有id时
- 用于创建子元素并附加到父节点的通用函数