如何隐藏MVC / Kendo UI标签上的单个标签?
我想根据条件隐藏标签。我的jQuery代码是这样的:
//authUser is a hidden input whose value is set in the controller and passed into the view
if ($('#authUser').val() == 'False') //hide the last tab
{
$($("#tabstrip").data("kendoTabStrip").items()[6]).attr("style", "display:none");
}
当我运行代码时,如果authUser为False,我在执行的代码行上会出现以下错误:
JavaScript运行时错误:无法获取属性'项目'未定义或空引用
想法?
答案 0 :(得分:7)
'items'未定义的事实意味着您从未在第一时间正确选择了tabstrip。您的CSS选择器是错误的(您确定将其命名为tabstrip吗?)或者您没有正确遵循Kendo方法名称。
我发现以下两种隐藏最后一个标签的方法:
隐藏最后一个标签元素
var tabStrip = $("#tabstrip").kendoTabStrip().data("kendoTabStrip");
//Find the last tab item's index from the items list
var lastIndex = tabStrip.items().length - 1;
//Use jQuery's hide method on the element
$(tabStrip.items()[lastIndex]).hide();
使用Kendo的标签删除方法
我认为以下更合适。为什么不使用tabstrip的remove方法并将其从DOM中完全删除,因为用户不应该访问它?
var tabStrip = $("#tabstrip").kendoTabStrip().data("kendoTabStrip");
tabStrip.remove("li:last");
答案 1 :(得分:1)
我只是愚蠢.... 我在代码中看了一些,我从
中省略了kendoTabStrip()字(粗体)$($("#标签栏"。)的 kendoTabstrip()强>。数据(" kendoTabStrip"。)项目()[6])。ATTR ("风格""显示:无&#34)
即。而不是(正确地)拥有:
$($("#tabstrip").kendoTabStrip().data("kendoTabStrip").items()[6]).attr("style","display:none")
我有:
$($("#tabstrip").data("kendoTabStrip").items()[6]).attr("style","display:none")
德鲁,谢谢你的努力。有时我只能在墙上砸我的头,直到我看到我做了什么。
答案 2 :(得分:0)
我正在使用显示/隐藏功能,但是由于某种原因,最后一个再次显示的选项卡完全是空的。
基本上,如果我隐藏所有选项卡然后还原,然后一个接一个,则每个都是空的。
我将attr样式用于none / flex来隐藏/显示,现在它可以完美地工作了。 看来他们在基本功能上仍有一些重大错误。 (使用Kendo 2020 Q1)