Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery-通过在单击时获取html元素和属性来创建数组对象_Javascript_Jquery_Html_Arrays_Json - Fatal编程技术网

Javascript JQuery-通过在单击时获取html元素和属性来创建数组对象

Javascript JQuery-通过在单击时获取html元素和属性来创建数组对象,javascript,jquery,html,arrays,json,Javascript,Jquery,Html,Arrays,Json,正如您在下面看到的,我有一个示例JSON数组对象。这就是我希望JSON结构在结尾的样子。我希望根据列表中的锚标记动态生成对象。如您所见,标题是锚定标记的名称(html()),URL是href属性。因此,单击CreateJSON按钮,函数将循环遍历所有列表及其锚定标记,并创建如下示例所示的对象。我的尝试没有走多远,我尝试获取所有锚定标记的html,然后获取标题的.html()和链接的.attr('href')。我该怎么做呢 JSON数组对象示例 [ { “id”:“1”, “标题”:“谷歌”, “

正如您在下面看到的,我有一个示例JSON数组对象。这就是我希望JSON结构在结尾的样子。我希望根据列表中的锚标记动态生成对象。如您所见,标题是锚定标记的名称(html()),URL是href属性。因此,单击CreateJSON按钮,函数将循环遍历所有列表及其锚定标记,并创建如下示例所示的对象。我的尝试没有走多远,我尝试获取所有锚定标记的html,然后获取标题的.html()和链接的.attr('href')。我该怎么做呢

JSON数组对象示例
[
{
“id”:“1”,
“标题”:“谷歌”,
“URL”:”https://www.google.com"
},
{
“id”:“1”,
“标题”:“雅虎”,
“URL”:”https://www.microsoft.com"
}
]

我不确定你想要什么身份证

函数createJson(){
var linkjson=$(“.addlink\u dynlist>li a”).map((索引,a)=>{
返回{id:a.id,Title:a.innerText,URL:a.href};
}).get();
log(linkjson);
}

文件
  • | 编辑
  • | 编辑
  • | 编辑
  • | 编辑
  • 创建json
    我不确定你想要什么身份证

    函数createJson(){
    var linkjson=$(“.addlink\u dynlist>li a”).map((索引,a)=>{
    返回{id:a.id,Title:a.innerText,URL:a.href};
    }).get();
    log(linkjson);
    }
    
    文件
    
  • | 编辑
  • | 编辑
  • | 编辑
  • | 编辑
  • 创建json
    试试这个

    函数createJson(){
    var linkjson=[];
    var listItemsA=$(“.addlink_dynlist>li”).find('a');
    listItemsA.每个函数(a){
    var x={};
    x、 id=1;
    x、 title=$(listItemsA[a]).html();
    x、 url=$(listItemsA[a]).attr('href');
    linkjson.push(x)
    });
    log(linkjson);
    }
    
    文件
    
  • | 编辑
  • | 编辑
  • | 编辑
  • | 编辑
  • 创建json
    试试这个

    函数createJson(){
    var linkjson=[];
    var listItemsA=$(“.addlink_dynlist>li”).find('a');
    listItemsA.每个函数(a){
    var x={};
    x、 id=1;
    x、 title=$(listItemsA[a]).html();
    x、 url=$(listItemsA[a]).attr('href');
    linkjson.push(x)
    });
    log(linkjson);
    }
    
    文件
    
  • | 编辑
  • | 编辑
  • | 编辑
  • | 编辑
  • 创建json
    如果我理解正确,你的函数是这样的


    如果我正确理解了您的函数,那么您必须查找每个元素属性集合。函数可以接受给定的选择器,并返回一个对象数组,其中包含与选择器匹配的所有元素的属性:

    函数createJson(选择器){
    var linkjson=[];
    排列
    //梯度元素
    .from(document.queryselectoral(选择器))
    //仅保留属性集合
    .map(x=>x.attributes)
    //为每个元素向linkjson添加一个新条目
    .forEach(at=>{
    让项目;
    linkjson[linkjson.length]={};
    item=linkjson[linkjson.length-1];
    Array.from(at).forEach(a=>(item[a.name]=a.value));
    });
    返回链接JSON
    }
    log(createJson('.target'))
    

    元素1

    元素2


    元素3必须查找每个元素属性集合。函数可以接受给定的选择器,并返回一个对象数组,其中包含与选择器匹配的所有元素的属性:

    函数createJson(选择器){
    var linkjson=[];
    排列
    //梯度元素
    .from(document.queryselectoral(选择器))
    //仅保留属性集合
    .map(x=>x.attributes)
    //为每个元素向linkjson添加一个新条目
    .forEach(at=>{
    让项目;
    linkjson[linkjson.length]={};
    item=linkjson[linkjson.length-1];
    Array.from(at).forEach(a=>(item[a.name]=a.value));
    });
    返回链接JSON
    }
    log(createJson('.target'))
    

    元素1

    元素2


    Element3

    您只需要内部元素。addlink\u dynlist li a元素?如果您只需要url和文本,为什么不在jquery中使用“addlink-a”类呢$(“#addlink-a”)。每个(函数(a){……})@穆拉德索菲耶夫:是的。@KeithAymar哦,是的,我正在考虑。它们都将被动态列出
    window.createJson = function createJson() {
        var linkjson=[];
        var listItemsA = $(".addlink_dynlist > li a")
      linkjson = listItemsA.map(function(index, node) {
         var $node = $(node);
         return {id: index, text:$node.text(), URL: $node.attr("href")}
      })
    }