鉴于此:
<p>knownString-randomString</p>
如何仅使用纯JavaScript查找文档中包含“knownString-”的所有段落?
对于<p>knownString-randomString</p>
的每个实例,我需要在连字符(-
)处拆分“knownString-randomString”并将“randomString”存储在变量中供以后使用。
感谢。
答案 0 :(得分:1)
获取您的元素
var paragraphs = document.getElementsByTagName('p');
醇>
2.对于循环检查并拆分你的字符串
for(var i = 0; i < paragraphs.length; i++){
if(paragraphs[i].innerHTML.search('knownString') > -1){
randomString = paragraphs[i].innerHTML.split('-')[1];
}
}
for(var i = 0; i < paragraphs.length; i++){
if(paragraphs[i].innerHTML.search('knownString') > -1){
randomString = paragraphs[i].innerHTML.split('-')[1];
}
}
答案 1 :(得分:1)
这是一种方式:
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;
}
答案 2 :(得分:0)
如果你的段落在某个其他元素中,或者是div,或者最终是<body>
,你可以选择那些带有jQuery $('divID p')的元素,遍历它们,并使用split()来分隔已知和未知的字符串到数组中。
var ArrayElement = split("knownString-randomString");
ArrayElement(0)将具有您的knownString,而ArrayElement(1)将具有您的randomString。
答案 3 :(得分:0)
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
答案 4 :(得分:0)
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>