element.classList属性及方法应用

element.classList属性用于返回一个元素的className集合,并且该属性拥有 addremovetogglecontains方法,详见: https://developer.mozilla.org/en-US/docs/DOM/element.classList

一般我们再操作dom节点的className时经常会有以下4个需求:

  1. 判断该节点是否存在某个className
  2. 移除某个节点上的指定className
  3. 为某个节点添加指定的className
  4. 在某个节点上进行指定的两个或多个className的切换
对于以上4个功能需求我们以前的做法一般是利用正则表达式进行匹配,匹配成功后进行替换,移除等操作,但目前对于firefox 3.6、chrome8等高级浏览器已经支持element.classList属性及相应方法,所以可以改进以上4种需求的实现。

  1. 对于某个节点上是否存在某个className的判断方法hasClassName():

    dom.hasClassName = function(node, classname) {
        var cn = node.className;
        if(classname && node.classList && node.classList.contains){    //浏览器特性判断是否支持classList及对应的contains方法
            return node.classList.contains(classname);
        }else{	//对于不支持classList及对应的contains方法使用indexOf进行字符窜匹配
            if( (' '+cn+' ').indexOf(' '+classname+' ')===-1 ){
               return false;
            }else{
                return true;
            }
        }
     };

2. 移除某个节点上指定的className,removeClassName():

    dom.removeClassName = function (node, _className){
        var obj = node;
        if(_className && obj && obj.classList && obj.classList.remove){//浏览器特性判断是否支持classList及对应的remove方法
            obj.classList.remove(_className);
        }else{
            obj.className = obj.className.replace(new RegExp("\\b" + _className + "\\b"), "");
       	}
     };
3.为某个节点添加指定的className


    dom.addClassName = function(node, className) {
        var cn = node.className;
        if(className && node && node.classList && node.classList.add){//浏览器特性判断是否支持classList及对应的add方法
            node.classList.add(className);
        }else{
            if( (' '+cn+' ').indexOf(' '+className+' ')===-1 ){
                node.className = cn+' '+className;
            }
        }
    };
4.在某个节点上进行指定的两个或多个className的切换

    dom.toggle = function(node,className){
        node = $E(node) || node;
        var classList = node.classList;
        if(typeof className === "undefined" || className === ""){//当没有传递className参数时,做hidden和show的切换
            if(node.style.display !== 'none'){
                node.style.display = 'none';
            }else{
                node.style.display = '';
            }
            return;
        }
        if(classList && classList.toggle){//传递了className参数时做浏览器特性判断,判断是否支持classList及对应的toggle方法
            node.classList.toggle(className);
        }else{
            if(dom.hasClassName(node,className)){
                dom.removeClassName(node,className);
            }else{
                dom.addClassName(node,className);
            }
        }
    };

根据提供的引用内容,您可以通过自定义CSS样式来修改Element UI中的confirm弹窗的大小。在引用中,您可以看到在`<style>`标签内定义了`.addcomfirm`的样式,其中设置了宽度为500px。您可以根据需要调整宽度值来修改弹窗的大小。同时,您还可以通过定义其他样式类名来修改按钮的样式,如`.addqd`和`.addqx`可以用于修改确认按钮和取消按钮的字体大小和上边距等样式。请注意,这些自定义样式需要在confirm弹窗中使用`customClass`属性应用,具体可参考引用中的代码示例。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [element-ui this.$confirm 自定义样式](https://blog.csdn.net/weixin_67849181/article/details/129263373)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [elementUI this.$confirm 文字大小样式](https://blog.csdn.net/qq_37804387/article/details/130435282)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值