2017-06-26 60 views
0

我從JSON生成一些HTML,這留下了一個帶有一個動態數量的子對象的HTML對象,取決於一個用戶,如果他們更改JSON。JS HTML對象,搜索元素的類包含

我需要根據類保留對某些元素的引用,因此用戶可能會更改類的名稱,但他們需要具有某些關鍵字,因此,例如,我想保留對marvLightbox__close

有人可以將其更改爲類似something__close的東西,那麼如何才能在close中搜索此HTML對象的子項?

我還沒有將這個對象附加到DOM,它只是在內存中。

P.S.沒有JQUERY!

編輯 發現我可以使用這個,但我覺得它有點作弊!另外,我需要支持IE8 ...

document.querySelectorAll('[class*=-img]') 

編輯2

的填充工具實際上是沒有太多的線條,所以它也不是太糟糕畢竟...

if (!document.querySelectorAll) { 
    document.querySelectorAll = function (selectors) { 
    var style = document.createElement('style'), elements = [], element; 
    document.documentElement.firstChild.appendChild(style); 
    document._qsa = []; 

    style.styleSheet.cssText = selectors + '{x-qsa:expression(document._qsa && document._qsa.push(this))}'; 
    window.scrollBy(0, 0); 
    style.parentNode.removeChild(style); 

    while (document._qsa.length) { 
     element = document._qsa.shift(); 
     element.style.removeAttribute('x-qsa'); 
     elements.push(element); 
    } 
    document._qsa = null; 
    return elements; 
    }; 
} 
+0

你嘗試過這麼遠嗎? – freginold

+1

那麼我要去嘗試querySelectorAll,但不太清楚如何使用這個用於此用途?附:如果你不滿意,留下評論並解釋原因,否則就毫無意義。 –

+0

是不是我downvoted。 – freginold

回答

0

發現我可以使用這個,但我覺得它有點作弊!另外,我需要支持IE8 ...

document.querySelectorAll('[class*=-img]') 

的填充工具實際上是沒有太多的線條,所以它也不是太糟糕畢竟...

if (!document.querySelectorAll) { 
    document.querySelectorAll = function (selectors) { 
    var style = document.createElement('style'), elements = [], element; 
    document.documentElement.firstChild.appendChild(style); 
    document._qsa = []; 

    style.styleSheet.cssText = selectors + '{x-qsa:expression(document._qsa && document._qsa.push(this))}'; 
    window.scrollBy(0, 0); 
    style.parentNode.removeChild(style); 

    while (document._qsa.length) { 
     element = document._qsa.shift(); 
     element.style.removeAttribute('x-qsa'); 
     elements.push(element); 
    } 
    document._qsa = null; 
    return elements; 
    }; 
}