简体   繁体   English

制作具有特殊格式的js代码

[英]Make a js code with a special format

I want get date-type and date-title in div.Img and make it as following format by jquery in the end putting it in a jQuery function, How is it? 我想在div.Img获取date-typedate-title ,并通过jquery使其遵循以下格式,最后将其放入jQuery函数中,怎么回事?

This is div.Img : 这是div.Img

<div class="Img" date-type="http://fancyapps.com/fancybox/demo/1_b.jpg" date-title="manual 1st title"></div>
<div class="Img" date-type="http://fancyapps.com/fancybox/demo/2_b.jpg" date-title="2nd title"></div>
<div class="Img" date-type="http://fancyapps.com/fancybox/demo/3_b.jpg" date-title="3rd title"></div>

This is my format : i want get in result as fllowing fomat of date-type and date-title in div.Img , with { } and , . 这是my format :我想以div.Img中带有{ },date-typedate-title格式作为结果。

    {
        href : 'http://fancyapps.com/fancybox/demo/1_b.jpg',
        title : 'manual 1st title'
    },
    {
        href : 'http://fancyapps.com/fancybox/demo/2_b.jpg',
        title : '2nd title'
    },
    {
        href : 'http://fancyapps.com/fancybox/demo/3_b.jpg',
        title : '3rd title'
    }

Please give me a example in jsfiddle.net 请在jsfiddle.net给我一个例子

Custom attribute should be data-* prefixed not date-* 自定义属性应为data-*前缀,而非date-*

<div class="Img" data-type="http://fancyapps.com/fancybox/demo/1_b.jpg" data-title="manual 1st title">1</div>

Then .map() can be used in conjunction with .data() 然后.map()可以与.data()结合使用

var arr = $('div.Img').map(function (elem) {
    return {
        href: $(this).data('type'),
        title: $(this).data('title')
    }
}).get();

console.log(arr);

Fiddle example 小提琴的例子

Here is a working code snippet sample. 这是一个工作代码片段示例。

 function getDivInfo($div) { return { "href": $div.attr("date-type"), "title": $div.attr("date-title") }; } $(function() { var div_info = []; $('div.Img').each(function() { div_info.push(getDivInfo($(this))); }); console.log(div_info); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="Img" date-type="http://fancyapps.com/fancybox/demo/1_b.jpg" date-title="manual 1st title"></div> <div class="Img" date-type="http://fancyapps.com/fancybox/demo/2_b.jpg" date-title="2nd title"></div> <div class="Img" date-type="http://fancyapps.com/fancybox/demo/3_b.jpg" date-title="3rd title"></div> 

Please note that custom attributes should begin with data- and not date- . 请注意,自定义属性应以data-而不是date-开头。

Use .map() in Jquery. 在Jquery中使用.map()

The $.map() method applies a function to each item in an array or object and maps the results into a new array $ .map()方法将函数应用于数组或对象中的每个项目,并将结果映射到新数组中

var res = $(".Img").map(function() {
    return {"href":$(this).attr('date-type'),
            "title":$(this).attr('date-title')
           }
}).get();

 console.log(res);

Fiddle 小提琴

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM