Javascript-从DIV的内部HTML中提取所有标题

Javascript-从DIV的内部HTML中提取所有标题,javascript,arrays,parsing,Javascript,Arrays,Parsing,如何在一个完整的div中从内部HTML提取特定属性 例如— 我有 我只想从蓝色高亮显示的div中的每个ALT=“Blah,Blah…,87876”中提取最后5位数字 之后,我想把所有的值放在一个逗号分隔的数组中,并删除所有重复的值 var Array = []; // solution code var values = Array.join(", "); alert (values); // shows up "34322, 23215, 5

如何在一个完整的div中从内部HTML提取特定属性

例如— 我有

我只想从蓝色高亮显示的div中的每个ALT=“Blah,Blah…,87876”中提取最后5位数字

之后,我想把所有的值放在一个逗号分隔的数组中,并删除所有重复的值

      var Array = [];

    // solution code

        var values = Array.join(", ");

    alert (values);

// shows up "34322, 23215, 52334, ....., 34123"

请举例说明我的上述问题

您的照片没有显示,但很容易获得号码:

var example = "Blah, blah... , 87876 ";
example.trim().match(/[\d]+$/g)
您可以使用
querySelectorAll
获取具有
alt
属性的所有元素:

document.querySelectorAll('.tab-content *[alt]')
将这些想法与
数组相结合。减少
,您可以建立一个包含所有数字的列表:

Array.from(document.querySelectorAll('.tab-content *[alt]')).reduce((acc, el) => {
   const match = el.getAttribute('alt').trim().match(/[\d]+$/g);
   if (match) { return acc.concat(match); }
   return acc;
}, []);
以下是非es6版本:

var elements = [].slice.call(document.querySelectorAll('.tab-content *[alt]'), 0);
elements.reduce(function(acc, el) {
   const match = el.getAttribute('alt').trim().match(/[\d]+$/g);
   if (match) { return acc.concat(match); }
   return acc;
}, []);
使用es6很容易删除重复项:

const altNums = Array.from(document.querySelectorAll('.tab-content *[alt]')).reduce((acc, el) => {
   const match = el.getAttribute('alt').trim().match(/[\d]+$/g);
   if (match) { return acc.concat(match); }
   return acc;
}, []);
const unique = [...new Set(altNums)];

这是图片-所有的ALT属性都在这个div中。你能编辑代码并添加这个类来获取所有ALT并删除重复项吗?但是我如何获取变量中的所有值,以逗号分隔,用于ex-var xyz=“1232123123423,…..,34245”
altNums.join(“,”)
将从数组中生成一个逗号分隔的字符串,我在imacros中使用它,它表示文档未定义。@Piyush Verma:您可以使用另一个选择器查询来替换上面
altNums
变量的
文档部分,例如:
document.querySelector('.tab content').querySelectorAll('[alt]'))
这将返回包含“alt”属性的“div.tab-content”的所有子元素。要从数组返回逗号分隔的字符串,请使用
array.join(',')
-请参见此处的MDN:
const altNums = Array.from(document.querySelectorAll('.tab-content *[alt]')).reduce((acc, el) => {
   const match = el.getAttribute('alt').trim().match(/[\d]+$/g);
   if (match) { return acc.concat(match); }
   return acc;
}, []);
const unique = [...new Set(altNums)];