第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何更改html元素中的索引

如何更改html元素中的索引

Smart貓小萌 2022-05-26 16:32:01
在我的代碼中,每個類都將通過單擊它們來切換。我想了解我的代碼中的 ,data已更改,并且類將與此保持一致。class-indexclass-index但是當(dāng)我查看開發(fā)人員工具時,class-index似乎沒有改變。<td class="classC" data-class-index="0">Value 1</td><td class="classB" data-class-index="0">Value 1</td>考慮到這一點,我添加undo了按鈕,它與切換相反,但效果不佳。我該如何解決?$(function(){ var classArray = ['classA','classB','classC']; var arrLen = classArray.length; $("#our_calendar td").click(function() {         var classIndex = $(this).data('class-index');       $(this).removeClass(classArray[classIndex]);       if(classIndex < (arrLen-1)) {         classIndex++;       }  else {         //reset class index         classIndex = 0;       }       $(this).addClass(classArray[classIndex]);       $(this).data('class-index',classIndex); });    $("#undo").on('click',function() {       var classIndex = $(this).data('class-index');       $(this).removeClass(classArray[classIndex]);         classIndex--;            $(this).addClass(classArray[classIndex]);       $(this).data('class-index',classIndex);  })});.classA {    background-color: aqua;}.classB {    background-color: yellow;}.classC {    background-color: red;}td {transition-duration:0.4s ;}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><table id="our_calendar"> <tr><td class="classA" data-class-index="0">Value 1</td></tr></table><button id="undo">undo</button>
查看完整描述

1 回答

?
陪伴而非守候

TA貢獻1757條經(jīng)驗 獲得超8個贊

關(guān)于未更新的 DOM,這是預(yù)期的行為,因為該data()方法僅更新 jQuery 的內(nèi)部data屬性緩存。它不會更新dataDOM 中相關(guān)元素中的屬性。


關(guān)于您的問題,主要問題是因為您在this點擊#undo處理程序中使用。那將指的是單擊的按鈕,而不是td上面的類。您只需要定位正確的元素。


另請注意,classIndex可以使用模運算符簡化邏輯。試試這個:


$(function() {

  let classArray = ['classA', 'classB', 'classC'];

  let arrLen = classArray.length;

  let $td = $("#our_calendar td");


  $td.click(function() {

    let classIndex = $td.data('class-index');

    $td.removeClass(classArray[classIndex]);


    classIndex = ++classIndex % classArray.length;

    $td.addClass(classArray[classIndex]);

    $td.data('class-index', classIndex);

  });


  $("#undo").on('click', function() {

    let classIndex = $td.data('class-index');

    $td.removeClass(classArray[classIndex]);


    classIndex = (--classIndex + classArray.length) % classArray.length;

    $td.addClass(classArray[classIndex]);

    $td.data('class-index', classIndex);

  });

});

.classA { background-color: aqua; }

.classB { background-color: yellow; }

.classC { background-color: red; }

td { transition-duration: 0.4s; }

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<table id="our_calendar">

  <tr>

    <td class="classA" data-class-index="0">Value 1</td>

  </tr>

</table>

<button id="undo">undo</button>


查看完整回答
反對 回復(fù) 2022-05-26
  • 1 回答
  • 0 關(guān)注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號