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

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

如何使用 JavaScript 檢查另一個元素中是否有一個元素

如何使用 JavaScript 檢查另一個元素中是否有一個元素

慕村9548890 2023-01-06 15:53:35
主要思想是:我有一份清單,beverage如果飲料是,并且有庫存div,我想知道。它需要在JavaScript 中(沒有 JQuery)checkout of stock or notclickfirst drink available元素在這里hierarchy:Main div包含所有飲料:class="ob-menu-items__items"Each drink將在一個H4 class="ob-menu-item__title"如果產(chǎn)品out of stock有span class="ob-menu-item__out-of-stock"text " - Out of Stock"到目前為止,我嘗試了這個(并卡住了):for (var i = 0; i < 7; i++) {    // iterating over each drink.    var drink = document.getElementsByClassName("ob-menu-item__title")[i];    if (document.getElementsByClassName(".ob-menu-item__out-of-stock").parents(drink).length == 1) {        // There's out of stock text        // Do nothing and go to the next drink     } else {        //The product is available. Clik the drink and exit the loop        document.getElementsByClassName("ob-menu-item__title")[i].click();        break;    }} 
查看完整描述

4 回答

?
溫溫醬

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

如下替換您的if條件,它將按預期工作。它會發(fā)現(xiàn)elements里面drinks有 class ob-menu-item__out-of-stock。

if (drink.getElementsByClassName("ob-menu-item__out-of-stock").length > 0)

請參考這個說不.getElementsByClassName("home")[0]應該使用的答案。您也可以.querySelectorAll()像下面這樣使用。替換getElementsByClassNamequerySelectorAll并傳遞class nameclass selector (.)。所以document.getElementsByClassName("ob-menu-item__title")[i]將被替換為document.querySelectorAll(".ob-menu-item__title")[i].

要查找elements內(nèi)部selected元素,您可以使用element.querySelectorAllwhich is done inside ifwithdrink.querySelectorAll(".ob-menu-item__out-of-stock").length

for (var i = 0; i < 7; i++) {

    // iterating over each drink.

    var drink = document.querySelectorAll(".ob-menu-item__title")[i];

    if (drink.querySelectorAll(".ob-menu-item__out-of-stock").length > 0) {

        // There's out of stock text

        // Do nothing and go to the next drink 

    } else {

        //The product is available. Clik the drink and exit the loop

        drink.click();

        break;

    }

}

在下面嘗試。


// get all drink

var drinks = document.querySelectorAll(".ob-menu-item__title");

// iterating over each drink.

for (var i = 0; i < drinks.length; i++) {

  let drink = drinks[i];


  if (drink.querySelectorAll(".ob-menu-item__out-of-stock").length > 0) {

  console.log('out of stock. i = ' + i);

    // There's out of stock text

    // Do nothing and go to the next drink 

  } else {

    //The product is available. Clik the drink and exit the loop

    console.log('In stock. i = ' + i);

    drink.click();

    break;

  }

}

<div class='ob-menu-items__items'>

  <h4 class='ob-menu-item__title'>

    item0<span class='ob-menu-item__out-of-stock'> - Out of stock</span>

  </h4>

  <h4 class='ob-menu-item__title'>

    item4<span class='ob-menu-item__out-of-stock'> - Out of stock</span>

  </h4>

  <h4 class='ob-menu-item__title'>

    item2<span class='ob-menu-item__out-of-stock'> - Out of stock</span>

  </h4>

  <h4 class='ob-menu-item__title'>

    item3

  </h4>

  <h4 class='ob-menu-item__title'>

    item4

  </h4>

  <h4 class='ob-menu-item__title'>

    item5

  </h4>

  <h4 class='ob-menu-item__title'>

    item6

  </h4>

</div>


查看完整回答
反對 回復 2023-01-06
?
富國滬深

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

您可以使用它childElementCount來查找有多少項。請參閱https://www.w3schools.com/jsref/prop_element_childelementcount.asp


查看完整回答
反對 回復 2023-01-06
?
RISEBY

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

for 循環(huán)初始化中的硬編碼7看起來不太好。你可以找到所有的飲料,document.querySelectorAll然后通過檢查每一種飲料的跨度來找到要點擊的飲料。


ES6單行:


[...document.querySelectorAll('.ob-menu-item__title')]

  .find( drink => !drink.querySelector('.ob-menu-item__out-of-stock') )

  .click()

它所做的是:將querySelectorAll結果轉(zhuǎn)換為數(shù)組,然后使用Array.prototype.findtrue方法返回滿足回調(diào)的第一個元素,如果給定元素不包含“缺貨”,則回調(diào)在這種情況下返回“ 跨度。


更多“經(jīng)典”JS:


var firstInStock = Array.from(document.querySelectorAll('.ob-menu-item__title'))

  .find( function(drink){

    if( drink.querySelector('.ob-menu-item__out-of-stock') ){

      return false;

    }

    return true;

  });

firstInStock.click()

或者如果你真的想要一個 for 循環(huán):


var drinks = document.querySelectorAll('.ob-menu-item__title');

for(var i=0; i< drinks.length; i++){

   if( !drink.querySelector('.ob-menu-item__out-of-stock') ){

     drink.click();

     break;

   }

}


查看完整回答
反對 回復 2023-01-06
?
UYOU

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

for (var i = 0; i < 7; i++) {

    var drink = document.getElementsByClassName("ob-menu-item__title")[i];

    if (document.getElementsByClassName.("ob-menu-item__out-of-stock").parents(drink).length == 1) {

        // There's out of stock text

        // Do nothing and go to the next drink 

    } else {

        //The product is available. Clik the drink and exit the loop

        document.getElementsByClassName("ob-menu-item__title")[i].click();

        break;

    }

}


查看完整回答
反對 回復 2023-01-06
  • 4 回答
  • 0 關注
  • 217 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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