如何使用jQuery在页面中查找任何字符串

时间:2009-10-31 16:15:15

标签: jquery

我正在拼命寻找一个jQuery函数来解析页面中的每个字符串(可能在一个表中)并用另一个字符串替换它的内容。

例如,我想要大写表格行中的任何字符串。

无法找到关于如何入门的任何线索,非常感谢一些初学者的帮助。

5 个答案:

答案 0 :(得分:1)

我不知道执行此任务的插件,但也许这可能很有用。

$("#mytable").replaceTableContents(origText, newText)

(function($){
$.fn.replaceTableContents = function(old, newt)
{
  if($(this).text().indexOf(old)>-1){ //check
    $(this).find("tr").each(function(){

      if($(this).text().indexOf(old)>-1){ //check

         $(this).find("td").each(function(){

            if($(this).text().indexOf(old)>-1){ //check
               $(this).html($(this).html().replace(old, newt));
            } 

         }
      }

    })
  }
}
})(jQuery);

答案 1 :(得分:1)

您可以使用这样的查询来获取所有文本节点,然后对集合进行循环。我可能会将它仅限于包含您要修改的文本的元素,而不是在“body”上执行,因为它可能不会非常高效。

var nodes = $("body")
              .contents()
              .filter(function() {
                  return this.nodeType == Node.TEXT_NODE;
              });

答案 2 :(得分:1)

以下内容将浏览页面上的所有元素,检查文本节点。然后你可以用它们做点什么。

$(document).contents()
           .filter( function() { return this.nodeType == 3 } )
           .each( function() {
               ...process...
           });

要大写表格中的任何字符串,我会使用

$('table').contents().
          .filter( function() { return this.nodeType == 3 } )
          .each( function() {
              this.innerHTML = this.innerHTML.toUpperCase();
          });

答案 3 :(得分:1)

有人纠正我,如果我错了,但使用jQuery你不需要迭代任何东西来查找表行。在这种情况下:

<强> CSS

tr.upper{text-transform:uppercase}

jQuery脚本

$(document).ready(function(){
    $("tr").addClass("upper");
});

答案 4 :(得分:1)

这里有一些很好的答案,但请记住,无论你做什么,它都是不完美的,因为任何包含标记的单词都会显示为用户的正常单词,但与你的搜索模式不符。