有鑑於此:一個元素是否包含指定的字符串(純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
改變了代碼:) –
這正是我所需要做的。謝謝你,菲利普! –