HOWTO · jQuery
如何在 jQuery 中更改文字
使用 jQuery 的 text() 方法讀取元素的文字,或將其取代為新文字,既可直接取代,也可在回應點擊時取代。
本頁內容
使用 jQuery 的 text() 方法讀取所選元素中的文字,或為元素設定新文字。不帶引數呼叫 .text() 可讀取文字;傳入字串則會取代所選元素的文字內容。
jQuery 中的 text() 方法
不帶引數的 .text() 是讀取器(getter):它會傳回所有符合條件元素的合併文字內容。例如,若頁面包含 <p id="line">It's a line.</p>,呼叫 $('#line').text() 會傳回 It's a line.。這個呼叫會讀取目前的文字,不會設定值。
傳入值時,.text(value) 是設定器(setter)。它會更新所有符合條件元素的文字內容,並傳回 jQuery 集合,因此可以串接其他方法。傳入的值會被視為文字,所以 <strong> 等標記字元會以文字顯示,而不會解析成 HTML。只有在確實要設定標記,且已安全處理任何不受信任的輸入時,才使用 .html()。
使用 jQuery 的 text() 方法直接變更文字
在瀏覽器頁面中,載入 jQuery,並在文件載入完成後執行設定器。以下 Node 範例使用簡易替代物模擬頁面與 jQuery 選取,因此相同呼叫可獨立執行。範例從文字為「Text」的段落開始,設定其文字,並印出結果:
const document = {};
const elements = { '#title': { text: 'Text' } };
function $(selector) {
if (selector === document) {
return { ready(callback) { callback(); } };
}
const element = elements[selector];
return {
text(value) {
if (value === undefined) return element.text;
element.text = value;
return this;
}
};
}
$(document).ready(function() {
$('#title').text('New Text');
});
console.log($('#title').text());
New Text
在實際頁面中,可搭配 <p id="title">Text</p>,於 ready 回呼中使用相同的 $('#title').text('New Text') 設定器。回呼執行時,段落會顯示「New Text」。Node 替代範例用來說明這個方法呼叫;在瀏覽器中使用時,頁面本身仍須載入 jQuery。
使用 jQuery 的 text() 方法透過點擊事件變更文字
若要在點擊後更新文字,請為按鈕綁定處理函式,並在其中對目標段落呼叫 .text()。以下獨立的 Node 範例會模擬段落與按鈕,再呼叫已註冊的處理函式,以顯示點擊前後的文字:
const document = {};
const elements = {
'#title': { text: 'Text' },
'#press': {}
};
const handlers = {};
function $(selector) {
if (selector === document) {
return { ready(callback) { callback(); } };
}
const element = elements[selector];
return {
text(value) {
if (value === undefined) return element.text;
element.text = value;
return this;
},
click(callback) {
handlers[selector] = callback;
return this;
}
};
}
$(document).ready(function() {
$('#press').click(function() {
$('#title').text('Text Altered');
});
});
console.log($('#title').text());
handlers['#press']();
console.log($('#title').text());
Text
Text Altered
在瀏覽器中,請搭配 <p id="title">Text</p> 和 <button id="press">Text Change</button> 使用該處理函式,並確保在指令碼執行前已載入 jQuery。段落一開始會顯示「Text」;點擊按鈕後會變成「Text Altered」。選取器中的 ID 必須與頁面元素相符,處理函式才能更新預期的段落。