有鉴于此:一个元素是否包含指定的字符串(纯JS)?
<p>knownString-randomString</p>
如何找到一个文件中包含“knownString-,”只使用纯JavaScript的所有段落?
对于<p>knownString-randomString</p>
的每个实例,我需要在连字符(-
)处拆分“knownString-randomString”并将“randomString”存储在变量中以备将来使用。
谢谢。
有鉴于此:一个元素是否包含指定的字符串(纯JS)?
<p>knownString-randomString</p>
如何找到一个文件中包含“knownString-,”只使用纯JavaScript的所有段落?
对于<p>knownString-randomString</p>
的每个实例,我需要在连字符(-
)处拆分“knownString-randomString”并将“randomString”存储在变量中以备将来使用。
谢谢。
让你的元素
var paragraphs = document.getElementsByTagName('p');
2. For循环与检查,并分割你的字符串
for(var i = 0; i < paragraphs.length; i++){
if(paragraphs[i].innerHTML.search('knownString') > -1){
randomString = paragraphs[i].innerHTML.split('-')[1];
}
}
如果您的段落位于某个其他元素(div或最终的<body>
)内,可以选择带有jQuery $('divID p')的段落,迭代它们并使用split()将已知和未知字符串放入数组中。 (0)将拥有你的knownString,而ArrayElement(1)将拥有你的randomString。
科比,我想使用纯JavaScript解决方案。谢谢。 –
var randomStrings = [];
var ps = document.querySelectorAll('p');
for(var i = 0; i < ps.length; i++) {
if(ps[i].textContent.startsWith('knownString')) {
randomStrings.push(ps[i].textContent.split('-')[1]);
}
}
你需要将存储在randomStrings
querySelectorAll
选择器进行修改)。var knownString = "knownString";
var regex = new RegExp(knownString + "\\-(.*)");
var pars = document.querySelectorAll("p");
var results = [];
[].forEach.call(pars, function(par) {
var x = par.firstChild.nodeValue.match(regex);
if (x) results.push(x[1]);
});
alert(results);
<p>something else</p>
<p>knownString-randomString1</p>
<p>knownString-randomString2</p>
这里有一种方法:
function FindRandomStrings()
{
var allParagraphs = document.getElementsByTagName("p");
var regex = /knownString-(.*)/;
var result = [];
var match;
var i;
for (i = 0; i < allParagraphs.length; i++)
{
match = regex.exec(allParagraphs[i].innerHTML);
if (match)
{
result.push(match[1]);
}
}
return result;
}
你应该搜索'knownString-'...'randomString'将是随机的,所以你可能没有那个.. – Rayon
改变了代码:) –
这正是我所需要做的。谢谢你,菲利普! –