jquery - HTML5 数据 block JSON

标签 jquery html

好的,所以这段代码:

<div class="summary-block" data-block-json="{"pageSize":4,"acceptTypes":["gallery","blog","projects","calendar"]}">

我正在尝试使用一些 jQuery 来完成这样的事情:

$(".summary-block").data('block', 'pageSize').each(function() {

  $('.summary-item').wrap('<div class="col sqs-col-3 span-3"></div>');
  $('.col > .summary-item').wrap('<div class="newSummary"></div>');

});

现在代码 100% 有效,但就我要问的问题而言,不是 100%。我怎样才能让它像这样:

$(".summary-block").data('block', 'pageSize':4).each(function() {

  $('.summary-item').wrap('<div class="col sqs-col-3 span-3"></div>');
  $('.col > .summary-item').wrap('<div class="newSummary"></div>');

});

注意 :4 这必须以某种方式包含在我的代码中。请帮忙。谢谢!

最佳答案

你不过滤元素,你只是设置新的 data 属性,而不是选择具有特定 data 属性的元素,也在你的 each 函数上下文你应该使用 this 它指的是当前元素而不是 $('.summary-item') 你应该编码 data(' block-json'),而不是 data('block')。您可以使用 filter 方法。

<div class="summary-block" data-block-json='{"pageSize":4,"acceptTypes":["gallery","blog","projects","calendar"]}'>...</div>

var $elems = $('.summary-block').filter(function(){
    return $(this).data('block-json').pageSize === 4
})

$elems.each(function(){
    $('.summary-item', this).wrap('<div class="col sqs-col-3 span-3"></div>');
    // or $(this).find('.summary-item')....
})

http://jsfiddle.net/xw2vN/

关于jquery - HTML5 数据 block JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12336253/

相关文章:

jquery - 单击按钮时模态弹出窗口会自动关闭(在生产中仅在我的本地工作正常)

javascript - Css - 添加 &lt;!DOCTYPE html> 让浏览器忽略我的动画

javascript - 从类名中找到前一个是textnode

javascript - 返回两个对象之间的差异

javascript - .hover() 在 iOS 上的奇怪行为

javascript - 来自服务器 json 对象的数据表

javascript - 如何让一个元素显示在 youtube 视频前面?

html - 如何在 HTML 中使用多个属性制作下拉列表

html - 尝试用一些 div 替换表格标签

javascript - LaTeX 公式嵌套