我正在使用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,因为我无法在我的环境中部署代码。 过去几天我看了很多博客,但没有任何建议接近为我工作。
谢谢
答案 0 :(得分:1)
如果您正在尝试查看该网页是否包含任何li
个标签,其中包含ul
标签的子项“查看项目”,其中包含“ms-core-menu-”类列表“您可以使用此选择器:
$('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');
}
答案 1 :(得分:0)
使用此:
if($('ul.ms-core-menu-list li[text="View Item"]').length==0)
...
请注意,JQuery始终返回一个非空的JQuery对象。
答案 2 :(得分:0)
关于jQuery选择器要记住的事情是它们总是返回一个对象。即使您没有找到任何内容,您仍然可以使用jQuery API来调用.hide()
,.show()
等内容。如果您没有&#39,您将不会收到错误消息;当调用jQuery方法时,你选择了任何东西,你只是没有选择任何可以接受调用的东西。
您可以做什么来推断是否选择了任何元素是将其视为伪造的数组 - 您可以使用.length
。
在你的情况下,
if ($('ul.ms-core-menu-list li[text="View Item"]').length > 0) {
alert('F');
} else {
alert('no F');
}