2012-05-18 5 views
1

나는 커스터마이징 할 공간이 거의없는 테이블에 장바구니 요약을 생성하는 시스템을 사용하고 있습니다. 쇼핑 카트가 '비어 있음'표시가 '0'입니다.동적으로 요소의 텍스트를 복제하는 방법은 무엇입니까?

수량이 포함되어있는 경우 해당 번호를 표시하십시오.

<span vertical="False" quote="False" id="catCartSummary"> 
    <table cellspacing="0" class="cartSummaryTable"> 
    <tbody> 
     <tr> 
     <td class="cartSummaryItem">3 item(s), Total: $115.00 <a href="/OrderRetrievev2.aspx?CatalogueID=0" class="cartSummaryLink">View Cart</a></td> 
     </tr> 
    </tbody> 
    </table> 
</span> 

당신이 현재 "3 항목 (들)"이 볼 수 있듯이 :

내가 을 숨겨 가지고 생성 된 HTML이다. 여기 몇 가지 간단한 HTML 설정이 이제

<span vertical="False" quote="False" id="catCartSummary"> 
    <table cellspacing="0" class="cartSummaryTable"> 
    <tbody> 
     <tr> 
     <td class="cartSummaryItem">Shopping cart is empty.</td> 
     </tr> 
    </tbody> 
    </table> 
</span> 

: 빈처럼 이것은 무엇

보인다 후 수량을 가지고에 추가 내가 원하는 jQuery를 사용

<div class="cartsummary"> 
    <div class="cartitems">Shopping Cart <a href="#"><span class="cartTotal"></span> Item(s)</a></div> 
</div> 

.cartTotal 및 장바구니에 아무 것도없는 경우 0을 표시하십시오.

이 종류의 작동하지만 장바구니에 새 항목을 추가하면 페이지가 새로 고쳐질 때 값만 업데이트되지만 자동 생성 업데이트를 동적으로 업데이트합니다.

if (jQuery('#catCartSummary .cartSummaryItem').html() != 'Shopping cart is empty.') { 
    var summary = jQuery('#catCartSummary .cartSummaryItem').text().split(" "); 
    var total = summary[0]; 
    jQuery('span.cartTotal').html(total); 
}else{ 
    jQuery('span.cartTotal').html("0"); 
} 

몇 푼의 가치에 주목 :

  1. 그것은 좋은 것 0 '항목', 1 "항목"2 "항목"을 가질 수 있습니다. 항상 "품목"보다
  2. 또 다른 범위에서 총 비용을 별도로 표시하는 것도 좋습니다. 아마 .cart 금액.

답변

1

시도 :

var text = $('#catCartSummary .cartSummaryItem').text(); 
items = text.match(/(\d+) item/); 
var num = 0; 
if(items &&items.length > 0){ 
    num = items[1]; 
} 
$(".cartItems").html('<div class="cartitems">Shopping Cart <a href="#"><span class="cartTotal">'+num+'</span> Item'+(num == 1 ? '' : 's') +'</a></div>'); 

일부 포인터 :

  • 사용는 .text()의 수를 구문 분석하는 정규식을 사용하는 text 변수
  • 에서 모든 HTML을 얻을합니다 분할 대신 항목
+0

그것은 절대적인 대우를 받았습니다. 포인터를 주셔서 감사합니다, 당신의 코드는 훨씬 좋네요! 자동 생성 된 값이 업데이트 될 때마다 (예 : 페이지를 새로 고침하지 않고 새 항목이 추가 될 때마다) 값을 업데이트해야하는 방법에 대한 아이디어가 있습니까? – Justin

+0

그 값을 업데이트하고 바인드하도록 트리거 된 이벤트를 찾아야합니다. 그렇지 않으면 몇 초마다 확인하는 타이머를 만들 수 있습니다 – mkoryak

+0

장바구니에 추가 버튼을 클릭 할 때마다 확인하도록 설정 될 수 있습니까 (input.productSubmitInput)? – Justin

관련 문제