亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

使用 jQuery 在 JSON/Array/Object 中存儲來自 select 的選項

使用 jQuery 在 JSON/Array/Object 中存儲來自 select 的選項

烙印99 2022-12-22 15:53:41
正如 GEAfan 所說,刪除require()- 靜態資產通常從/public/文件夾中提供。所以,我會創建一個文件夾/public/assets/,并將所有文件夾復制./node_modules/cryptocurrency-icons/到/public/assets/images/文件夾。從那時起,您就可以將字符串傳遞給src屬性。還有模板文字語法,例如使用反引號而不是連接字符串,使您的代碼更具可讀性...<img  alt="icon"  style={{ width: 28, height: 28 }}  src={`/assets/images/32/color/${coin.symbol ? coin.symbol : "generic"}.png`}/>由于coin.symbol始終為真,您將必須動態導入資產以測試它們是否確實存在,以便您能夠設置通用圖標。var rows = coins.map((coin: any) => {    let hasFile: Boolean;        import(`your/path/to/${coin.symbol}.png`).then(() => hasFile = true).catch(() => hasFile = false)      return {    cells: [      {        key: "icon",        content: (          <span style={{ display: "flex", alignItems: "center" }}>            <div style={{ marginRight: 8 }}>              <img                alt='icon'                style={{ width: "32px", height: "32px" }}                src={`/assets/images/black/${hasFile ? coin.symbol + "@2x" : "generic"}.png`}              />我希望在以下方面得到一些幫助:所以,我的 HTML 結構中有這個(通過 WordPress 生成)<select class="items">    <option value="0" selected="selected">All Types Of Staff</option>    <option class="level-0 main-option-1" value="12">Main Option 1</option>    <option class="level-1 sub-option-1" value="29">Sub Option 1</option>    <option class="level-1 sub-option-2" value="30">Sub Option 2</option></select>理想情況下,使用 jQuery(我知道,但項目已經在使用它了……)……我想做的是所有具有“0 級”類的東西,我想添加到數組/JSON 對象/我可以迭代的東西,下面的所有東西都具有 1 級,添加為那個的子類型...等等,這個想法是我們可以隱藏選擇按鈕,只有子選項可以作為按鈕使用,標簽作為標題。我對管理輸出非常有信心,我似乎無法弄清楚如何或最好的方式來存儲它......有人可以幫我嗎?我對 jQuery 一點都不陌生,但對自己創建 JS 對象還是很陌生。
查看完整描述

1 回答

?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

您可以遍歷level-0選擇中的每個選項,將它們的文本添加為標簽,將它們的同級level-1選項文本作為項目添加到對象中。然后你可以將這些對象推送到一個數組來生成你想要的結構:


let options = [];

$('.items option.level-0').each(function(_, el) {

  let label = $(el).text();

  let items = [];

  el = $(el).next();

  while (el.length && el.attr('class').split(/\s+/).includes('level-1')) {

    items.push(el.text());

    el = el.next();

  }

  options.push({

    label,

    items

  });

});

console.log(options);

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

<select class="items">

  <option value="0" selected="selected">All Types Of Staff</option>

  <option class="level-0 main-option-1" value="12">Main Option 1</option>

  <option class="level-1 sub-option-1" value="29">Sub Option 1</option>

  <option class="level-1 sub-option-2" value="30">Sub Option 2</option>

  <option class="level-0 main-option-2" value="11" selected="selected">Main Option 2</option>

  <option class="level-1 sub-option-1" value="28">Sub Option 1</option>

  <option class="level-1 sub-option-2" value="25">Sub Option 2</option>

  <option class="level-1 sub-option-3" value="26">Sub Option 3</option>

  <option class="level-1 sub-option-4" value="27">Sub Option 4</option>

  <option class="level-0 main-option-3" value="10">Main Option 3</option>

  <option class="level-1 sub-option-1" value="22">Sub Option 1</option>

  <option class="level-1 sub-option-2" value="23">Sub Option 2</option>

</select>


查看完整回答
反對 回復 2022-12-22
  • 1 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號