查找给定元素中字符串的出现次数。

时间:2014-08-24 19:55:42

标签: javascript indexof

我正在寻找一种方法来查找某个元素中某个特定字符的实例。我知道做了类似的事情:

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标签中,其中'?'被发现了?

感谢。

2 个答案:

答案 0 :(得分:0)

你如何做到这一点:

  1. 获取所有p元素。
  2. 创建一个空数组,结果
  3. 迭代它们并检查每个p元素
  4. 如果p的innerHTML包含问号,则将字符串拆分为问号,获取第一部分并添加问号。然后将此新字符串添加到结果数组
  5. 返回结果数组
  6. 示例代码:

    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/

答案 1 :(得分:0)

使用循环条件检查

中的整个内容,之后使用像slice这样的内容,它将获取您指定的特定索引的所有内容。