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