2017-03-22 1 views
3

현재 각 항목과 관련된 페이팔 버튼이있는 상품 목록이 있습니다. 각 항목은 관련 단추를 클릭하여 별도로 구입합니다.한 페이지에 여러 개의 버튼이있는 PayPal 익스프레스 체크 아웃 통합

<ul> 
    <li data-id="1">Item 1 <div class="paypal-button"></div></li> 
    <li data-id="2">Item 2 <div class="paypal-button"></div></li> 
    <li data-id="3">Item 3 <div class="paypal-button"></div></li> 
</ul> 

<script src="https://www.paypalobjects.com/api/checkout.js"></script> 

<script> 
    paypal.Button.render({ 
     // options 
    }, '.paypal-button'); 
</script> 

불행히도, paypal.Button.render()는 단지 그것을 발견하는 첫 번째 요소를 렌더링 할 것으로 보인다.

여러 요소에서이 호출을 수행 할 수 있습니까?

답변

2

당신은 여러 번 다음, 각 요소에 고유 ID를 부여 렌더링 호출해야합니다 : 당신이 나 같은 ID를 추적하는 마음에 들지 않으면, 당신이 대신 클래스를 사용할 수 있습니다

<ul> 
    <li data-id="1">Item 1 <div id="button-1"></div></li> 
    <li data-id="2">Item 2 <div id="button-2"></div></li> 
    <li data-id="3">Item 3 <div id="button-3"></div></li> 
</ul> 

<script src="https://www.paypalobjects.com/api/checkout.js"></script> 

<script> 
    [ '#button-1', '#button-2', '#button-3' ].forEach(function(selector) { 
     paypal.Button.render({ 
      // options 
     }, selector); 
    }); 
</script> 
+0

나는 비슷한 접근 방식을 가졌습니다. 다소 추한, 오 잘. – Mikey

2

. 데이터 속성을 사용하여 차별화하십시오.

<div class="paypal-button" data-my-attribute="tree"></div> 
<div class="paypal-button" data-my-attribute="dog"></div> 
<div class="paypal-button" data-my-attribute="car"></div> 

<script src="https://www.paypalobjects.com/api/checkout.js"></script> 

<script> 
    document.querySelectorAll('.paypal-button').forEach(function(selector) { 
     paypal.Button.render({ 
      // options 
      console.log(selector.dataset.myAttribute); 
     }, selector); 
    }); 
</script> 
+0

는'selector'가'paypal.Button.render'의 끝 부분에있는 변수입니까? –

+0

사실, forEach 루프에서 전달 된 요소를 보유하는 변수입니다. [forEach에 대한 문서 확인] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach). – bramchi

+0

이 작업을 시도한 후에 오류가 발생했습니다. '잡히지 않은 오류 : 문서가 준비되어 있고 개체 [개체 개체]가 존재하지 않습니다.'.. 아이디어가 있습니까? –

관련 문제