Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.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检查HTML是否包含数组中的项_Javascript_Html_Arrays - Fatal编程技术网

Javascript检查HTML是否包含数组中的项

Javascript检查HTML是否包含数组中的项,javascript,html,arrays,Javascript,Html,Arrays,我的javascript文件中有一个潜在html类的列表 var html_list = ["blogrss", "btnrss", "buttonsrssfeed", "copypasteblocker", "facebook128x128", "feedicon", "iconrss", "instagram128x128", "jobwidget", "pinterest128x128", "pushnotification", "rss128x128"] 在访问一个网页时,我想迭代数组

我的javascript文件中有一个潜在html类的列表

var html_list = ["blogrss",
"btnrss",
"buttonsrssfeed",
"copypasteblocker",
"facebook128x128",
"feedicon",
"iconrss",
"instagram128x128",
"jobwidget",
"pinterest128x128",
"pushnotification",
"rss128x128"]

在访问一个网页时,我想迭代数组,如果该网页包含其中一个元素,一个简单的警报将显示该网页包含的html元素

您可以查看jquery所有选择器 您可以使用Cheerio:


更具体地说,请查看遍历部分:

您需要运行一个脚本,该脚本基本上遍历列表并检查DOM,以查看是否存在匹配项。请记住,选择器可以是标记、类、id等。。。在您的列表中,所有选择器都将被视为一个标记选择器,因此您需要提供正确的选择器,其余的选择器将位于位置id或.class name或tagName中:

您可以使用document.getElementsByTagName*获取所有元素,然后只需使用classList和一些数组方法来确定是否有任何元素具有该类

在下面的函数中,searchForClasses函数将根据是否存在匹配返回true或false

变量html_列表=[ 测试类 ], 第二个html列表=[ 香蕉 ] 函数searchForClassesclassArray{ 让class_include=false, elements=Array.fromdocument.getElementsByTagName*; 对于类数组的let_类{ class_included=elements.someele=>ele.classList.contains_class; 如果类_包括中断; } 包括返回舱; } console.logsearchforclasses第二个html列表;//错误的 console.logsearchForClasseshtml_列表;//符合事实的
这些弦应该是什么?上课?Ids?-您尝试过什么?请分享您的代码以便更好地理解尝试google chrome extension TamperMonkey或FF extn GreaseMonkey并学习在其中编写的用户脚本是元素或标记名的值-ID?您好,这些是某些网页中使用的垃圾邮件html类的典型示例谢谢。这些是类名的示例。您的解决方案看起来不错。是否仍要返回找到的元素的名称。当前仅显示找到的[Object],您必须更新代码并提供JS FIDLE。上面的代码将显示元素名称,因为数组是字符串数组
( () => {
    const elements = [
  "blogrss",
  "btnrss",
  "buttonsrssfeed",
  "copypasteblocker",
  "facebook128x128",
  "feedicon",
  "iconrss",
  "instagram128x128",
  "jobwidget",
  "pinterest128x128",
  "pushnotification",
  "rss128x128"
  ];
  const matchedElements = [];
  elements.forEach( (el) => {
    const match = document.querySelectorAll(el);
    if (match && match.length > 0) {
        matchedElements.push({ elementName: el, matches: match.length });
    }
  });
  alert(`Found ${matchedElements.length}`);
  console.log(matchedElements); // More detailed view of the matches
})();