Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用tabber.js时,是否可以更改选项卡内容中选项卡的标题?_Javascript - Fatal编程技术网

Javascript 使用tabber.js时,是否可以更改选项卡内容中选项卡的标题?

Javascript 使用tabber.js时,是否可以更改选项卡内容中选项卡的标题?,javascript,Javascript,我正在使用tabber.js脚本创建选项卡式内容,我想在onclick事件期间更改选项卡的标题 我试着这样设置标题, document.getElementById(“mytab1”).title=“新标题” 但这是行不通的。。还有其他想法吗 谢谢编辑:对不起,我最初将您的问题解释为更改选项卡顶部的文本,而不是标题属性 事实上,如果您想更改title属性,那么您正在使用的代码事实上是可以工作的 如果此代码在您的网站上不起作用,则有两个可能的错误源 您引用的元素ID不正确 代码在DOM完全加载之前

我正在使用tabber.js脚本创建选项卡式内容,我想在onclick事件期间更改选项卡的标题

我试着这样设置标题, document.getElementById(“mytab1”).title=“新标题”

但这是行不通的。。还有其他想法吗


谢谢

编辑:对不起,我最初将您的问题解释为更改选项卡顶部的文本,而不是标题属性

事实上,如果您想更改title属性,那么您正在使用的代码事实上是可以工作的

如果此代码在您的网站上不起作用,则有两个可能的错误源

  • 您引用的元素ID不正确
  • 代码在DOM完全加载之前(更具体地说,在加载选项卡之前)执行
  • 如果错误来自#1,则只需更改document.getElementById('id'),使其匹配即可

    如果错误来自#2,那么有两个选项可以使用纯JavaScript修复此问题。第一个选项是将处理DOM的任何代码包装到一个函数中,然后在窗口完全加载后调用该函数:

    window.onload = coolStuff();
    function coolStuff() {
        document.getElementById("mytab1").title = "New Title";
    }
    
    执行代码的另一个选项是将脚本包含在html页面的
    标记的底部。这将确保在调用脚本时浏览器已计算出整个DOM

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Cool page</title>
        <link rel="stylesheet" href="mycss">
    </head>
    <body>
        <div id="mytab1">My cool tab</div>
        <div id="othercoolstuff">Totally cool stuff here</div>
        <script src="script.js"></script>
    </body>
    </html>
    
    
    酷页
    我的酷牌
    这里的东西很酷
    
    此(未测试)功能显示了方法。从选项卡开始,通过类“tabbertab”将其同级遍历到父计数元素,直到到达类为“tabbernav”的元素,然后,具有索引计数的该选项卡的子项就是所需的选项卡标题

    function changeTabberTitle (tab, newTitle) {
      var idx = 0;
      while (tab) {
        if ((tab = tab.previousSibling) && (tab.className || '').match (/\btabbertab\b/))
          idx++;
        else if ((tab.className || '').match (/\btabbernav\b/)) {
          tab = tab.children[idx];
          tab && (tab.innerHTML = newTitle);
          return !!tab; 
        }
      }  
      return false;
    }
    

    函数成功返回true,否则返回false

    mytab1是选项卡的ID,而不是标题。标题是选项卡的属性。选项卡的定义如下:@Kdude抱歉,完全误解了您的问题。我修正了我的答案,我确信我找到了错误所在(我打赌这是问题2,在DOM准备好之前调用代码)。