Javascript 迭代Nodejs中的元素
我有一个网页,我想把鼠标悬停在所有锚定标签上,并计算出该标签的样式。我编写的这个函数似乎不起作用,因为它提供了锚的原始样式,而不是悬停样式。 请帮忙Javascript 迭代Nodejs中的元素,javascript,jquery,node.js,puppeteer,Javascript,Jquery,Node.js,Puppeteer,我有一个网页,我想把鼠标悬停在所有锚定标签上,并计算出该标签的样式。我编写的这个函数似乎不起作用,因为它提供了锚的原始样式,而不是悬停样式。 请帮忙 let data = await page.evaluate(() => { let elements = document.getElementsByTagName('a'); properties = [] for (var element of elements){ element.focus()
let data = await page.evaluate(() => {
let elements = document.getElementsByTagName('a');
properties = []
for (var element of elements){
element.focus();
properties.push(JSON.parse(JSON.stringify(window.getComputedStyle(element, null)["backgroundColor"])));
}
return properties;
});
尝试document.getComputedStyle(元素“:hover”)首先,您应该从document.getElementsByTagName
到普通数组
const elements = [...document.getElementsByTagName('textarea')];
接下来要获取元素属性,请使用以下语法:
window.getComputedStyle(element).getPropertyValue("background-color")
最后,这是一个完全有效的示例:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://css-tricks.com/almanac/selectors/f/focus/');
const data = await page.evaluate(() => {
const elements = document.getElementsByTagName('textarea');
return [...elements].map(element => {
element.focus();
return window.getComputedStyle(element).getPropertyValue("background-color");
});
});
console.log(data);
await browser.close();
})();
您可以使用获取textarea
元素的数组
然后,您可以使用鼠标悬停在每个元素上,然后获取计算的背景色,以推送到数据
数组:
const elements = await page.$$( 'textarea' );
const data = [];
for ( let i = 0; i < elements.length; i++ )
{
await elements[i].hover();
data.push( await page.evaluate( element => window.getComputedStyle( element ).backgroundColor, elements[i] ) );
}
console.log( data );
const elements=wait page.$$(“textarea”);
常量数据=[];
for(设i=0;iwindow.getComputedStyle(element.backgroundColor,elements[i]);
}
控制台日志(数据);
尝试Array.from(…,(element)=>(document.getComputedStyle(element,null)[“backgroundColor”])
请详细说明。这种方法不起作用,您需要首先向每个元素添加一个侦听器,然后调用每个元素的焦点。inputValue[i]。addEventListener('focus',yourListenerHere,false)
然后调用element.focus()
如何添加侦听器?