问题描述
@(Html.Kendo().TabStrip()
.Name("tabstrip")
.Events(e => e.Select("onTabSelect"))
.Items(tabstrip =>
{
tabstrip.Add().Text("Tab 1")
.Selected(true)
.Content(@<text>
<div class="panel-heading">
<h3 class="panel-title">Tab 1</h3>
</div>
</text>);
tabstrip.Add().Text("Tab 2")
.Content(@<text>
<div class="panel-heading">
<h3 class="panel-title">Tab 2</h3>
</div>
</text>);
tabstrip.Add().Text("Tab 3")
.Content(@<text>
<div class="panel-heading">
<h3 class="panel-title">Tab 3</h3>
</div>
</text>);
tabstrip.Add().Text("Tab 4")
.Content(@<text>
<div class="panel-heading">
<h3 class="panel-title">Tab 4</h3>
</div>
</text>);
})
)
The jQuery below fires whenever one of the tabs is selected:
function onTabSelect(e) {
var tab = $(e.item).find("> k-link");
if (tab !== null) {
console.log(tab);
var tabText = tab.text();
console.log(tabText);
if (tabText == "Tab 1") {
//
} else if (tabText == "Tab 2") {
alert('Tab 2');
} else if (tabText == "Tab 3") {
alert('Tab 3');
} else if (tabText == "Tab 4") {
alert('Tab 4');
}
}
};
未调用 alert() 框,因此我正在 Chrome 调试器中使用两 (2) 个 console.log
消息进行调试。
下面显示了四 (4) 个 控制台写入行,我选择了“Tab 2”,然后选择了“Tab 3”。第一个有数据(为截图而展开),第二个没有,第三个有数据,第四个没有:
第一条 console.log
消息包含我需要的所有内容,但我不知道如何获取。
第二个 console.log
显示我尝试使用 var tabText = tab.text();
读取文本,但返回为 null。
我不知道如何复制和粘贴整个文本,但可以展开第一条消息以显示 context: li.k-item.k-state-default
及其下的一长串属性。
如果我可以向下滚动到足够远,您会看到我将 innerText 项目设置为我需要阅读的内容。
我尝试使用此方法深入研究 context
:
function onTabSelect(e) {
var tab = $(e.item).find("> k-link");
if (tab !== null) {
console.log(tab);
var context = tab.context;
console.log(context);
var contextText = context.text;
console.log('context text = ' + contextText);
var tabText = tab.text();
console.log('tabText = ' + tabText);
上面的额外日志输出:
我可以在 context
项中看到“Tab 2”,但如何在 jQuery 中读取它?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)