JQuery 按文本查找 LI,按类查找 UL
JQuery to find LI by text and UL by Class
我正在使用SharePoint 2013中的一个列表,该列表在鼠标悬停时动态创建无序列表(熟悉SharePoint的用户为列表项ECB)。
给定的类名在 at 后添加了空格,每个菜单项额外添加 1 个空格。我不确定这是否会影响 jquery 中的类属性值,所以这就是我使用开头符号的原因。
我需要隐藏几个菜单项,并且在调试中没有收到警报,所以我认为我的语法已关闭。
我正在使用这个:
if($('ul[class^="ms-core-menu-list"] li[text="View Item"]') ! == null) {
alert('F');
} else {
alert('no F');
}
我没有收到警报,所以要么我的语法错误,我需要帮助,要么执行此代码时未创建菜单项,在这种情况下,我想知道如何使用 jquery 获取这些菜单项,因为我无法在我的环境中部署代码。在过去的几天里,我看了很多博客,但没有推荐的东西能接近我。
谢谢
如果您试图找出页面是否包含任何带有文本"查看项目"的li
标签,这些标签是带有类"ms-core-menu-list"的ul
标签的子级,您可以使用以下选择器:
$('li:contains("View Item")', $('ul.ms-core-menu-list')).length;
在您的示例上下文中:
if($('li:contains("View Item")', $('ul.ms-core-menu-list')).length) {
alert('F');
} else {
alert('no F');
}
使用这个:
if($('ul.ms-core-menu-list li[text="View Item"]').length==0)
...
请注意,JQuery 始终返回一个不为 null 的 JQuery 对象。
关于jQuery选择器,要记住的是它们将始终返回一个对象。即使你没有找到任何东西,你仍然会得到jQuery API来调用.hide()
、.show()
等东西。如果在调用 jQuery 方法时未选择任何内容,则不会收到错误,只是不会为调用选择任何内容来操作。
为了推断是否选择了任何元素,您可以做的是将其视为伪数组 - 您可以使用.length
。
在您的情况下,
if ($('ul.ms-core-menu-list li[text="View Item"]').length > 0) {
alert('F');
} else {
alert('no F');
}
相关文章:
- 正在全局范围中查找JavaScript函数
- 在单独的ul's
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 在不使用jquery的情况下查找页面中的所有锚点并附加函数
- es6 相当于下划线查找位置
- 从部门查找 UL
- 如何查找列表项的索引 (ul-li)
- JQuery 按文本查找 LI,按类查找 UL
- 将 li 添加到 ul 并查找是否存在
- JavaScript在ul中查找li索引
- 查找ul li中的所有a值
- jQuery查找最近的ul
- 如果它的父元素为li,则查找ul
- 在JavaScript中查找两个JSON数组之间匹配的JSON项,并将CSS应用于UL列表中的匹配项
- 使用jQuery查找特定文本,然后将类添加到下面的UL
- 查找ul's的嵌套顺序并添加特定的类
- 根据在其中单击的链接查找嵌套的ul是哪个子元素
- jQuery 查找并列出特定 DIV 中 UL 中的所有 LI 元素
- jQuery查找ul li span中的元素
- 使用jQuery查找已单击链接的ul列表'