Cats萌萌
2022-06-16 15:51:48
在下面的 HTML 示例中,我想獲取code元素中使用的語言:<div id="editor"><pre><code class="language-js something"></code></pre></div>我可以使用以下代碼獲取班級列表:editor = document.getElementById('editor');let codeNode = editor.querySelector('code[class*="lang"]');console.log (codeNode.classList);但是,現在我被卡住了,我不知道如何上課?我期望一個包含“language-js”的字符串我不想使用 jQuery。
2 回答

LEATH
TA貢獻1936條經驗 獲得超7個贊
這classList是一個只讀屬性,它返回DOMTokenList元素的類屬性的實時集合。然后可以使用它來操作類列表。但由于您只想獲取此元素上的類名稱,您可以簡單地使用:
codeNode.classList.value
演示:
editor = document.getElementById('editor');
let codeNode = editor.querySelector('code[class*="lang"]');
let classes = codeNode ? codeNode.classList.value.split(/(\s+)/) : [];
console.log(classes.filter(c => c.startsWith("lang"))[0]);
<div id="editor"><pre><code class="language-js something"></code></pre></div>

慕姐8265434
TA貢獻1813條經驗 獲得超2個贊
如果我正確地完成了任務,那么您只有通過其 ID 找到的一個元素,對吧?然后你應該把所有的類(getAttribute('class'))找到一個以'lang'開頭的類。為此,我將使用如下代碼:
document.getElementById('editor').getAttribute('class').split(' ').find(element => element.indexOf('lang')===0)
請注意,它將僅返回以“lang”開頭的第一個類。如果您需要所有這些,請使用 reduce() 方法來構建一個新的類數組。
添加回答
舉報
0/150
提交
取消