我对Regex很新,但我认为这是最好的方法。我真的需要将HTML标记属性中的文本添加到能够使用的字符串数组中。我有多个带有onclick属性的<span>
标记。它是我需要的属性中的文本。我会举个例子。
<span class="ord" onclick="top.wiki_ord_klick('abstrakt','icke konkret, ogripbar')">abstrakt</span><br>
这是一个带有onclick属性的span类。我想要访问的是top.wiki_ord_klick(...)中的单词。我希望它们是单独制作的字符串并放入数组中。结果将是
var result = ["abstrakt", "icke konkret, ogripbar"];
我该怎么做?
答案 0 :(得分:2)
以下使用match()和正则表达式/'.+?'/
。这匹配单引号(包括引号)之间的所有内容,并将参数作为数组返回。
然后使用map()遍历数组以删除单引号。
var span = document.querySelector('span.ord'), //get the <span> element
click = span.onclick.toString(), //get its inline click event as a string
parms = click.match(/'.+?'/g); //get an array of the onclick parameters
parms = parms.map(function(parm) {
return parm.replace(/'/g, ''); //remove single quotes
});
console.log(parms);
<span class="ord" onclick="top.wiki_ord_klick('abstrakt', 'icke konkret, ogripbar')">abstrakt</span>