如何动态增加删除tab页

使用的bootstrap3 + jquery

增加tab页

function addTabs(Main,contentName,className,html,tabName) {

    var str; //  className(自定义命名名字)+后缀数字

    var val;//  获取class类名的值

    var mainLi =$("#"+Main);

    //取ul下li的个数,即tab的个数

    var length = mainLi.children().length;

    //maxTab 为全局变量,默认值为 1,即首页。增加页采取的策略  是 不断递增,即使删除,尾号也会增加

    maxTab =maxTab +1;

    str =  className+(maxTab).toString();

    val =$('.'+str).val();

    //创建li

    var li =document.createElement("li");

    li.setAttribute("class",str);

    //创建a

    var a =document.createElement('a');

    a.setAttribute("class",str);

    a.setAttribute("href","#"+str);

    a.setAttribute("data-toggle","tab");

    a.setAttribute('display',"inline");

    //创建div

    var Adiv =document.createElement('div');

    //创建span

    var span =document.createElement('span');

    span.setAttribute("id",str+"Text");

    span.setAttribute("float","left");

    span.setAttribute("display","inline");

    //创建button

    var btn =document.createElement('button');

    btn.setAttribute("type","button");

    btn.setAttribute("class","close");

    //为button定义一个方法  参数为str

    var close ="closeAddTab(" +str +")";

    btn.setAttribute("onclick",close);

    btn.setAttribute("aria-hidden","true");

    btn.setAttribute("aria-hidden","true");

    btn.setAttribute("display","inline");

    //定义一个btn里的span

    var btnSpan =document.createElement('span');

    btnSpan.setAttribute("id",str+"Span");

    btnSpan.setAttribute("display","inline");

    //追加

    btn.appendChild(btnSpan);

    Adiv.appendChild(span);

    Adiv.appendChild(btn);

    a.appendChild(Adiv);

    li.appendChild(a);

    mainLi[0].appendChild(li);

    //设置tab名字

    $("#"+str+"Text").text(tabName);

    $("#"+str+"Span").html("×");

    //生成 内容页

    var mainDiv =$("#"+contentName);

    //创建 子tab内容页

    var div =document.createElement('div');

    div.setAttribute("class","tab-pane fade");

    div.setAttribute("id",str);

    //内容页

    var div2 =document.createElement('div');

    div2.setAttribute("id",str+"Son");

    //追加

    div.appendChild(div2);

    mainDiv[0].appendChild(div);

    //设置 内容的html

    $("#"+str+"Son").html(html);

    $('.'+str).css("float","left");

    //显示最后一个,即新打开的页面

    $('#'+Main+" a:last").tab('show');

}



关闭tab页

function closeAddTab(Main,str,className) {

//str 来自addtabs创建,会带入一个select,获取它的名字

    str = str.id.toString().trim();

    var lastNum;

    var str2 = str;

    //获取 className的长度

    var len =Number(str.substring(className.length));

    var tab;

    var val;

    var last =$('#'+Main+' a:last')[0].getAttribute("class").trim();

    lastNum = last.toString().substring(className.length);

    lastNum =Number(lastNum);

    //获取 tab页尾号

    if (len === lastNum) {

for (let i = len -1; i >0; i--) {

val ='.' + className + i.toString();

            val =$(val).val();

            if (val !==undefined) {

str ="#"+className + i.toString();

                tab ='#'+Main+' a[href="' + str +'"]';

break;

            }

}

}

var length =$("#"+Main).children().length;

    var str3 ="."+str2;

    var str4 ="#"+str2;

    //移出

    $(str3).remove();

    $(str4).remove();

    //如果只有2个页面,则会到首页,多个则会到前面的一个

    if (length ===2){

$('#'+Main+' a:first').tab('show')

}else {

$(tab).tab('show');

    }

}



获取激活页

// 获取当前 active 的tab页

function getTabNum() {

var tabNum;

    if (maxTab ===2){

tabNum =maxTab;

    }else {

var active =$('.active').children()[0].getAttribute('class');

        tabNum = active.toString().substring(className.length);

    }

return tabNum;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • blossom html css JavaScript 程序员入门的时候整理的一份学习笔记,见证了我的成长备份 标...
    blossom_绽放阅读 1,063评论 0 2
  • 前端 前端:任何与用户直接打交道的操作界面都可以称之为前端比如:电脑界面 手机界面 平板界面 后端:后端类似于幕后...
    浅笑_7cad阅读 933评论 3 1
  • 01京东tab栏切换 <!-- li标签要想有上面那根红线,那么加一个类叫active就可以了 下...
    桑葚_1194阅读 256评论 0 0
  • 简述JavaScript起源起源于美国的Netscape公司,原名为LiveScript,后改为JavaScrip...
    3ab670b99521阅读 3,166评论 0 0
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,794评论 16 22

友情链接更多精彩内容