我拼命寻找一个jQuery函数来解析页面中的每个字符串(可能在一个表中)并用另一个替换它的内容。如何使用jQuery在页面中找到任何字符串
例如,我想大写表格行中的任何字符串。
找不到关于如何入门的任何线索,将不胜感激一些初学者的帮助。
我拼命寻找一个jQuery函数来解析页面中的每个字符串(可能在一个表中)并用另一个替换它的内容。如何使用jQuery在页面中找到任何字符串
例如,我想大写表格行中的任何字符串。
找不到关于如何入门的任何线索,将不胜感激一些初学者的帮助。
我不知道执行此任务的插件,但也许这可能会有用。
$("#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);
您可以使用这样的查询来获取所有文本节点,然后对集合进行循环。我可能会将它限制在具有要修改的文本的元素上,而不是在“body”上执行,因为它可能不会很高效。
var nodes = $("body")
.contents()
.filter(function() {
return this.nodeType == Node.TEXT_NODE;
});
以下将浏览页面上的所有元素,检查文本节点。然后你可以对它们做些什么。
$(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();
});
很酷,有没有可以提供的链接来查看您可以测试的其他nodeType? – RedWolves 2009-10-31 17:02:28
http://www.w3schools.com/Dom/dom_nodetype.asp – tvanfosson 2009-10-31 17:38:02
有人纠正我,如果我错了,但使用jQuery你并不需要遍历东西找表行。在这种情况下:
CSS
tr.upper{text-transform:uppercase}
jQuery脚本
$(document).ready(function(){
$("tr").addClass("upper");
});
有一些很好的答案在这里,但请记住,不管你做什么,它会因为含有任何字是不完美标记将作为普通单词显示给用户,但不符合搜索模式。
正是我在找的东西。非常感谢 – Disco 2009-11-02 10:56:22