select dom 其中有 css 属性 cursor:pointer
select dom which have css property cursor:pointer
<div class="classname">some test<div>
<style> div.classname{cursor:pointer}</style>
我想 select dom 上面的 CSS 示例分配了光标指针
不确定下面的内容
document.querySelector('[cursor=pointer]')
我们可以使用
document.querySelector('[style*="cursor:pointer"]')
但这仅适用于我们直接使用 style
属性在元素上设置的 内联 样式,如下所示:
const elem = document.querySelector('[style*="cursor:pointer"]')
console.log( elem )
<div class="classname" style="cursor:pointer">some test<div>
根据 computed 样式 查找 dom 元素(就像在本例中使用 class ) 我们需要遍历页面上的所有元素,然后使用 getComputedStyle()
方法,如:
(function() {
// Get all elements on the page
let elms = [...document.querySelectorAll('*')];
// loop through all elements and getComputedStyle
elms.some(el => {
let compStyles = window.getComputedStyle(el);
// Find the cursor property of current dom element
if (compStyles.getPropertyValue('cursor') == 'pointer') {
console.log('Element found')
console.log(el)
return true; // break the loop here
}
});
})();
div.classname {
cursor: pointer
}
<div class="classname">some test
<div>
我想出了以下解决方案
function getCursorPointerDomArray()
{
let ar=[];
let dom=document;
function iterateDomNode(dom)
{
let c,noIterate=false;
try{
c=getComputedStyle(dom);
if(c.getPropertyValue('cursor')=='pointer')
{
ar.push(dom);
noIterate=true;
}
}catch(e)
{
}
if(dom.hasChildNodes() && noIterate==false)
{
for(let i=0;i<dom.childNodes.length;i++)
{
iterateDomNode(dom.childNodes[i]);
}
}
}
iterateDomNode(dom)
return ar;
}
<div class="classname">some test<div>
<style> div.classname{cursor:pointer}</style>
我想 select dom 上面的 CSS 示例分配了光标指针
不确定下面的内容
document.querySelector('[cursor=pointer]')
我们可以使用
document.querySelector('[style*="cursor:pointer"]')
但这仅适用于我们直接使用 style
属性在元素上设置的 内联 样式,如下所示:
const elem = document.querySelector('[style*="cursor:pointer"]')
console.log( elem )
<div class="classname" style="cursor:pointer">some test<div>
根据 computed 样式 查找 dom 元素(就像在本例中使用 class ) 我们需要遍历页面上的所有元素,然后使用 getComputedStyle()
方法,如:
(function() {
// Get all elements on the page
let elms = [...document.querySelectorAll('*')];
// loop through all elements and getComputedStyle
elms.some(el => {
let compStyles = window.getComputedStyle(el);
// Find the cursor property of current dom element
if (compStyles.getPropertyValue('cursor') == 'pointer') {
console.log('Element found')
console.log(el)
return true; // break the loop here
}
});
})();
div.classname {
cursor: pointer
}
<div class="classname">some test
<div>
我想出了以下解决方案
function getCursorPointerDomArray()
{
let ar=[];
let dom=document;
function iterateDomNode(dom)
{
let c,noIterate=false;
try{
c=getComputedStyle(dom);
if(c.getPropertyValue('cursor')=='pointer')
{
ar.push(dom);
noIterate=true;
}
}catch(e)
{
}
if(dom.hasChildNodes() && noIterate==false)
{
for(let i=0;i<dom.childNodes.length;i++)
{
iterateDomNode(dom.childNodes[i]);
}
}
}
iterateDomNode(dom)
return ar;
}