首頁  >  問答  >  主體

javascript - 可以用setAttribute/removeAttribute對類別名稱進行增刪操作嗎?

在群組裡討論原生js對類別名稱的操作問題,有人提出可以用setAttribute與removeAttribute的方法對類別名稱進行操作,我覺得很不解:我以為只有classList.add()或classList.remove( )這種方法可以解決這種需求,可是有人提出了用setAttribute('class', 'xxx')和removeAttribute('class')的方法。第一感覺就是限制與不安全:第一個只能將類別名稱更改為指定結果,第二刪除class屬性的做法從來沒有看過。請問對類別名稱的操作中是否有這樣的做法是否具有可行性? ?

过去多啦不再A梦过去多啦不再A梦2683 天前965

全部回覆(3)我來回復

  • 我想大声告诉你

    我想大声告诉你2017-05-19 10:48:49

    其實如果只是想處理增刪class的話,也可以選擇使用className來做,這樣也可以避免classList的相容性問題。

    可以選擇自行封裝兩個增刪的方法出來。

    實作程式碼如下

    ele.className += ' clsName'; //添加类名
    ele.className = ele.className.replace(/ ?deleteClsName/g,''); //删除类名

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-19 10:48:49

    removeAttribute 是用来删除指定属性的, class 也是属性,自然可以删除。classList 是 HTML5 的 API,如果只能用它来添加删除,你让不支持 classList 的瀏覽器版本情何以堪。另外這種問題試一下不就知道了。

    回覆
    0
  • 高洛峰

    高洛峰2017-05-19 10:48:49

    為什麼不用addClass....

    setAttribute修改的是class這個整體屬性,如果要用來處理class,還需要做判斷

    class="test1 test2 test3";這種情況下,你要setAttribute,你需要先判斷你的value存在不,不存在增加,存在不做處理。 remove的話,你要判斷存在不存在,不存在,不處理,存在的話,不能把其他的刪除。 。 。 。

    回覆
    0
  • 取消回覆