2016-08-24 16 views
0

我在使用javascript從按鈕單擊時從父類拉入值時遇到了麻煩。我將在按鈕選擇上激發JavaScript,並且需要它爬上Dom樹並從「product-sku」類中提取值。在深入瞭解這篇文章後https://gomakethings.com/climbing-up-and-down-the-dom-tree-with-vanilla-javascript/我知道我必須在按鈕選擇前面加上我的腳本,但我不確定是否可以通過這種方式在樹上移動,思考?從GTM的Javascript中的父類中拉取值

<div class="review-sku-line"> 
      <div class="ratings"> 
    <span class="amount"><a href="#" onclick="var t = opener ? opener.window : window; t.location.href='xxxx/review/product/list/id/123456/category/117/'; return false;">No Reviews</a></span> 
</div> 

      <div class="product-sku"> 
       <span><strong>Code:</strong> 7777</span> 
      </div> 
     </div> 

     <div class="actions"> 
          <form class="add-form cart-update-flag" method="post" action="xxxxx/checkout/cart/add/uenc/aHR3dUuaHRtbA,,/product/123456/form_key/cV1MQZ1w/"> 
        <input type="hidden" name="block_name" value="xxxxxx/_list_item_render_gridview"> 

        <div class="qty-control small"> 
         <button type="button" for="qty_prod_123456" class="qty-ctrl-sub button"> 
          <span class="grey-btn"><i class="icon-minus"></i></span> 
         </button> 
         <input id="qty_prod_123456" type="text" class="qty" name="qty" value="1"> 
         <button type="button" for="qty_prod_123456" class="qty-ctrl-add button"> 
          <span class="orange-btn"><i class="icon-plus"></i></span> 
         </button> 
        </div> 


        <button class="button btn btn-cart" title="Add to Cart" type="submit"> 
         <span>Add to Cart</span> 
        </button> 
       </form> 
        </div> 
    </div> 

非常感謝您的任何建議或意見!

回答

0

您只需定義一個變量,它將包含目標對象的值。當事件(點擊)發生時,該值將可用於此變量。

創建一個新變量並選擇「DOM元素」。然後使用「CSS選擇器」具有以下值:div.product-SKU

如果有一個頁面上的多個SKU值,你可以使用這個函數返回下一個匹配的父對象的值:

function findElementWithSelector (elem) { 

    // Define your selector value 
    selector = "product-sku"; 

    // Get closest match 
    for (; elem && elem !== document; elem = elem.parentNode) { 
     if (elem.hasAttribute("class") && elem.getAttribute(class) === selector) { 
     return elem; 
     } 
    } 
    }; 

你需要把這個函數放在一個Tag中,並儘可能在每個頁面上觸發(比如一個「通用函數」HTML標籤)。 然後,您可以使用變量來檢索點擊元素的值: (自定義JavaScript變量)

if({{Click Element}} != "") 
    return findElementWithSelector({{Click Element}});