Как получить атрибуты данных div и передать их в cookie

0

Это может быть уже достигнуто; однако я не смог найти решение.

Скажем, у меня есть следующие divs...

<div class="listings-area">

<div itemtype="http://schema.org/Product" itemscope="">
<a class="listing"  data-id="D_2781467">blah blah </a>
some more blahj blah text here 
</div>

<div itemtype="http://schema.org/Product" itemscope="">
<a class="listing"  data-id="D_2781445">blah blah </a>
some more blahj blah text here 
</div>

.......................
.......................
</div>

Я хочу, чтобы я хотел получить все эти атрибуты идентификатора данных и добавить в массив, а затем передать их в javascript cookie

Если я сделаю что-то вроде

$('a.listing').attr('data-id')

Я получаю идентификатор данных первого элемента. Я хочу, чтобы все идентификаторы данных элемента, а затем эти идентификаторы добавлены в массив...?

5 ответов

2
Лучший ответ

Вы можете использовать .map():

var idArr = $('a.listing').map(function() {
    return $(this).attr('data-id');    
}).get();

затем сохраните его внутри файлов cookie, используя:

$.cookie("example", idArr);

если вы используете плагин jQuery cookie.

1

Вы должны использовать .data() для получения атрибута данных:

$('a.listing').data('id');

Чтобы получить все из них, используйте .each():

var arr = $.cookie('somecookiename').split(', '); // split string to array
$('a.listing').each( function(){
   arr[i] = $(this).data('id') // convert string array entries to dataids
});
0

Используйте .map() и .data() как показано здесь: http://jsfiddle.net/iamnotsam/AExsP/

// Gets array of ids
var ids = $('.listing').map(function() {
  return $(this).data('id');    
}).get();
0

Другой способ сделать это использовать для цикла. Демо:

<div itemtype="http://schema.org/Product" itemscope="" class="ListingS">
        <ul>
            <li>
                <a class="listing"  data-id="D_2781467">blah blah </a>
                <p>some more blahj blah text here </p>
            </li>
            <li>
                <a class="listing"  data-id="D_2781445">blah blah </a>
                <p>some more blahj blah text here </p>
            </li>
        </ul>
    </div>
    <script>
$(function(){
    var liLength = $('.ListingS').find('a').length;
    var liDom = $('.ListingS').find('a');
    for (var i = 0; i < liLength; i++ ) {
        console.log( "try " + i + liDom.eq(i).attr('data-id'));
    }
})

0
var yourarray = new Array();
var elements = document.getElementsByClassName('listing');
for ( var i = 0; i < elements.length; i++ )
{
    var el = elements[i];
    var id = jQuery(el).attr('data-id');
    yourarray.push( id );
}

alert(yourarray);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню