我有一堆元素,我希望转换为属性数组,我使用以下代码:
var attributes = [];
$("#id").find("tag").each(function() {
attributes.push($(this).attr("attribute"));
});
有更简洁的方法吗?感觉就像我用剪刀修剪我的指甲。
我最近一直在使用d3
,感觉可能有一种方法可以像var attributes = $("#id").find("tag").attr("attribute");
这样的方式执行此操作,但这只是将变量设置为第一个属性选择中的元素。
答案 0 :(得分:1)
您可以将.map()
与.get()
通过函数传递当前匹配集中的每个元素,生成一个包含返回值的新jQuery对象。
var attributes = $("#id tag").map(function() {
return $(this).attr("attribute");
}).get();
答案 1 :(得分:1)
使用map()
方法,如下所示。
var attributes = $("#id tag").map(function () {
return $(this).attr("attribute");
}).get();
答案 2 :(得分:1)
使用本机方法hasAttribute。
来定位html页面中的每个元素var attributes = [];
$("*").each(function(index,element)
{
if($(element)[0].hasAttribute("id"))
{
attributes.push($(this).attr("id"));
}
});
alert(JSON.stringify(attributes));
定位页面中的特定元素。在html页面中添加一些元素,如p,label,h1等,并尝试跟随。您还可以在jQuery选择器中提供id或类名,如$(&#34; .className,#id,tagName&#34;)等。< / p>
var attributes = [];
$("p,h1,label").each(function(index,element)
{
if($(element)[0].hasAttribute("id"))
{
attributes.push($(this).attr("id"));
}
});
alert(JSON.stringify(attributes));
第三,你可以使用map mathod。 map方法将返回数组。
attributes = $("p,h1").map(function()
{
return $(this).attr("id");
}).get();
alert(JSON.stringify(attributes));
第二&amp;第三是更好。他们将针对特定元素。