查找在给定元素中出现的字符串

Find occurrences of a string in a given element.

本文关键字:字符串 元素 查找      更新时间:2023-09-26

我正在寻找一种方法来查找某个元素内的某个字符的实例。我意识到我在做这样的事情:

var string = 'this is a string';
string.indexOf('a');

然而,我希望indexOf查看特定html文件中的特定标签。(在本例中为p标记)。我已经评论了我试图使用,以实现这一点。

function findQuestion() {
  // var string1 = document.getElementsByTagName('p');
  var string2 = '??';
  if (string2.indexOf('?') !== -1) {
    console.log('foundQuestion');
  }
  else {
    console.log('nothing');
  }
}
findQuestion();

这段代码显然只是检查是否有一个'?'在string2,但我怎么写这个找到'的所有实例?并返回在p标记之前的所有内容,直到开始的p标记,其中'?"被发现了?"

谢谢。

你是怎么做到的:

  1. 获取所有p元素。
  2. 创建一个空数组,results
  3. 遍历它们并检查每个p元素
  4. 如果p的innerHTML包含一个问号,在问号处分割字符串,获取第一部分并添加一个问号。然后将这个新字符串添加到结果数组
  5. 返回结果数组

示例代码:

function findQuestion() {
  var ps = document.getElementsByTagName('p');
  var result = [];
  for(var i = 0; i < ps.length; i++){
    var p = ps[i];
    if (p.innerHTML.indexOf('?') !== -1) {
        result.push(p.innerHTML.split("?")[0] + "?");
    } 
  }
 return result;
}
findQuestion();
http://jsfiddle.net/3o4tcchL/1/

使用循环条件检查

内的全部内容,然后使用类似slice的东西,它将获取所有内容直至指定的特定索引。