我拼命尋找一個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