Jquery 从属性创建数组;将它们添加到页面中
我有一个问题一直在绞尽脑汁,因为我对编程相当缺乏经验。我是一个拥有图片库的网站的成员。当您查看包含图库列表的页面时,每个图库下面都有图标内的标签Jquery 从属性创建数组;将它们添加到页面中,jquery,arrays,each,Jquery,Arrays,Each,我有一个问题一直在绞尽脑汁,因为我对编程相当缺乏经验。我是一个拥有图片库的网站的成员。当您查看包含图库列表的页面时,每个图库下面都有图标内的标签 <div class="id4"> <a href="..."><img src="..."></a> <div class="id44"> <div class="tft" title="tag1, tag2"></div>
<div class="id4">
<a href="..."><img src="..."></a>
<div class="id44">
<div class="tft" title="tag1, tag2"></div>
<div class="tft" title="tag3"></div>
</div>
<div class="tags"></div>
</div>
<div class="id4">
<a href="..."><img src="..."></a>
<div class="id44">
<div class="tft" title="tag1"></div>
<div class="tft" title="tag2"></div>
</div>
<div class="tags"></div>
</div>
由于将鼠标悬停在每个图标上是一件非常麻烦的事情,所以我想编写一个自定义脚本,在它们所属的库下面的“title”属性中写入标记。这是我所能做到的:
$(".id44").after('<div class="tags"></div>');
$(".id44").each(function() {
var array = [];
$(".tft").each(function() {
var tags = $(this).attr("title");
array.push(tags);
});
console.log(array);
});
(“”)之后的“.id44”);
$(“.id44”)。每个(函数(){
var数组=[];
$(“.tft”)。每个(函数(){
var tags=$(this.attr(“title”);
array.push(标签);
});
console.log(数组);
});
它所做的只是将页面上每个标签的巨大列表打印到控制台,打印次数与库的次数相同。查找作为当前元素后代的
.tft
元素:
$(this).find(".tft").each(function() {
array.push(this.title);
});
$(“.tft”)
单独匹配具有tft
类的所有元素
我会这样写整件事:
$('.id44').each(function() {
var tags = $(this).find('.tft').map(function() {
return this.title;
}).get();
$('<div>', {
'class': 'tags',
'text': tags.join(', ')
}).insertAfter(this);
});
$('.id44')。每个(函数(){
var tags=$(this.find('.tft').map(function()){
返回此.title;
}).get();
$('', {
“类”:“标记”,
“文本”:标记.连接(',')
}).在(本)之后插入;
});
.map(…).get()
只是一种较短的编写代码的方法,用于生成所有标记的数组。问题在于.tft
不限于当前的.id44
循环。使用“选择器”,此
将结果限制在此
容器中。此外,我还添加了如何在右侧.tag div
中添加标记
$(".id44").after('<div class="tags"></div>');
$(".id44").each(function() {
var array = [];
$(".tft", this).each(function() {
var tags = $(this).attr("title");
array.push(tags);
});
$(".tags", this).html(array.join(','));
});
(“”)之后的“.id44”);
$(“.id44”)。每个(函数(){
var数组=[];
$(“.tft”,this).each(函数(){
var tags=$(this.attr(“title”);
array.push(标签);
});
$(“.tags”,this.html(array.join(',');
});
我不知道“选择器”,这是可能的,谢谢。这很有帮助。这个功能非常好,谢谢。我还有一个关于标签的小问题。其中一些已附加名称空间(例如:“namespaceX:tag1”“namespaceY:tag2”)如何从输出中删除这些名称空间?@user1689634:只需执行
this.title.split(“:”).slice(-1)