如何获取div的数据属性,然后在cookie中传递

时间:2014-04-14 04:05:52

标签: javascript jquery html css

这可能已被回答;但是,我无法找到特定的解决方案。

我们说我有跟随div ...

<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>

我想要的是我想获取所有这些data-id属性并添加到数组然后在javascript cookie中传递

如果我做的话

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

我得到第一个元素的数据id。我想要所有元素数据id,然后将那些id添加到数组中......?

5 个答案:

答案 0 :(得分:2)

您可以使用 .map()

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

然后使用以下内容将其存储在Cookie中

$.cookie("example", idArr);

如果你正在使用 jQuery cookie 插件。

答案 1 :(得分: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
});

答案 2 :(得分: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);

答案 3 :(得分:0)

使用.map().data(),如http://jsfiddle.net/iamnotsam/AExsP/

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

答案 4 :(得分:0)

其他做法是使用for循环.. Demo :

<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'));
    }
})