[英]Does an element contain a specified string (pure JS)?
Given this: 鉴于这种:
<p>knownString-randomString</p>
How do I find all paragraphs in a document that contain "knownString-," using pure JavaScript only? 如何仅使用纯JavaScript查找包含“ knownString-”的文档中的所有段落?
For each instance of <p>knownString-randomString</p>
, I need to split "knownString-randomString" at the hyphen( -
) and store "randomString" in a variable for later use. 对于
<p>knownString-randomString</p>
每个实例,我需要在连字符( -
)处拆分“ knownString-randomString”,并将“ randomString”存储在变量中以备后用。
Thanks. 谢谢。
Get your elements 得到你的元素
var paragraphs = document.getElementsByTagName('p'); var段落= document.getElementsByTagName('p');
2. For loop with check and split your string
2. for循环检查并拆分字符串
for(var i = 0; i < paragraphs.length; i++){ if(paragraphs[i].innerHTML.search('knownString') > -1){ randomString = paragraphs[i].innerHTML.split('-')[1]; } }
Here is one way: 这是一种方法:
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;
}
If your paragraphs are inside some other element, either a div, or ultimately the <body>
, you can select those with jQuery $('divID p'), iterate through them, and use split() to separate the known and unknown strings into an array. 如果您的段落位于某个其他元素(一个div或最后一个
<body>
,则可以选择带有jQuery $('divID p')的那些元素,对其进行迭代,然后使用split()分隔已知字符串和未知字符串排列成一个数组。
var ArrayElement = split("knownString-randomString");
ArrayElement(0) will have your knownString, and ArrayElement(1) will have your randomString. ArrayElement(0)将具有您的knownString,而ArrayElement(1)将具有您的randomString。
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]);
}
}
The variables you need would be stored in randomStrings
您需要的变量将存储在
randomStrings
querySelectorAll
selectors). 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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.