2014-12-15 4 views
0

Я пытаюсь получить все atributes имени-данных из этого раздела HTML

<div class='get-all'> 
    <div class='left-wrapper'> 
     <div class='field-wrapper'> 
      <div class='field'> <span class='product-id' data-name='itemId'>5</span> 

       <img src='carousel/images/120231671_1GG.jpg' width='52' height='52'> <span class='final-descript' data-name='itemDescription'>Product 1</span> 
<span class='product-id' data-name='itemAmount'>225,99</span> 
<span class='product-id' data-name='itemQuantity'>1</span> 
      </div> 
      <div class='fix'></div> 
      <div class='field'> <span class='review-price'>$ &nbsp;225,99</span> 

      </div> 
     </div> 
     <div class='field-wrapper'> 
      <div class='field'> <span class='product-id' data-name='itemId'>4</span> 

       <img src='carousel/images/120231671_1GG.jpg' width='52' height='52'> <span class='final-descript' data-name='itemDescription'>Product 2</span> 
<span class='product-id' data-name='itemAmount'>699,80</span> 
<span class='product-id' data-name='itemQuantity'>1</span> 
      </div> 
      <div class='fix'></div> 
      <div class='field'> <span class='review-price'>$ &nbsp;699,80</span> 

      </div> 
     </div> 
    </div> 
    <div class='left-wrapper'> <span class='f-itens'>Total</span><span id='fff' class='f-value'>925,79</span> 

     <hr class='f-hr' /> <span class='f-itens'>Shipping</span><span class='f-value' id='f-value'> - </span> 

     <hr class='f-hr' /> 
     <div class='f-itens tots'>Total Price</div><span class='f-value' id='pagar'>-</span> 

    </div> 
</div> 

Я использую этот JavaScript

$(".get-all").each(function(index, element){ 
     $('[data-name]').each(function(index, element) { 
      if($(this).attr("data-name")) { 
       if (startsWith($(this).attr("data-name"),"itemAmount")) { 
        var a = $(this).html() 
        var b = a.replace(".", ""); 
        var c = b.replace(",", "."); 

        params[$(this).attr("data-name") + (index+1)] = c; 


       } else { 
        params[$(this).attr("data-name") + (index+1)] = $(this).html(); 
       } 
      } 
     }); 
    }); 

Но я m получить только первый диапазон данных имени, например

ItemId = 5 
ItemDescription = Product 1 
ItemAmount 225,99 
ItemQuantity = 1 

Как получить все имя атрибута внутри этого диапазона? Спасибо за все ответы.

ответ

1

Простой

$('[data-name]').each(function(index, elem) { 
    // do things with index and elem 
    $(elem); // Will be your span 
}); 

поможет вам все элементы с data-name атрибут.

+0

Это не работает для меня. –

+0

Что говорит вам об использовании '$ ('[data-name]'). Length' в консоли инструментов вашего браузера? – Matijs

+0

Используя этот код, я получаю «Все пустые поля» –

1

Вы можете использовать $.map и $.get, и вы можете непосредственно захватить только пролеты, которые data-name таким образом избегая дополнительного if состояние.

params = $(element).find("span[data-name]").map(function() { 
    return $(this).data("name"); 
}).get(); 

Основываясь на ваш комментарий, я полагаю, Вы желаете, (но не знаю, почему)

params = $(element).find("span[data-name]").map(function() { 
    var rtn = $(this).data("name"); 
    return rtn.replace((rtn == 'itemAmount') ? "." : ","), ""); 
}).get(); 
+0

Как реализовать этот код? Мне также нужно проверить, является ли имя data = itemamout, если true, а затем заменить ('.' '') И заменить (',' '.'). См. Мое обновление. –

+0

Как это работает? Можете ли вы мне помочь? Я не понимаю, как использовать этот код. –

+0

@EduardoVSales проверить мои изменения. Если вы не поняли, задайте новый вопрос, ясно. –

Смежные вопросы