Wh在此情況下,HTML轉義爲myId.val()
的值,刪除任何前導和尾隨空格。
正如您已經注意到的,$.trim(myId.val())
只是刪除任何前導和尾隨空格。
它設置了一個「虛擬」div,其文本值爲$.trim(myId.val())
,這意味着它是它的文字值(沒有HTML轉義)。
當您在沒有參數的jQuery元素上調用.html()
時,您將返回子節點(在本例中爲剛插入的文本)的HTML轉義值。例如,在HTML中,&符與字符轉義具有特殊含義,因此字面符號需要用轉義形式表示(&
)。
使用普通的JavaScript,這將是等效於以下:
var myId = document.getElementById('myid');
var a = document.createElement('div');
// probably an input field, original code uses val()
a.textContent = myId.value.trim();
console.log(a.innerHTML);
注意String.prototype.trim
是ES5方法,這意味着舊的瀏覽器(如IE8和老年人)可能不此方法本身。此外,textContent
不是跨瀏覽器。在這種情況下,你可以這樣做,而不是:
function trimString(arg) {
var str = String(arg);
return str.match(/[\x09-\x0D\x20\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*([\s\S]*?)[\x09-\x0D\x20\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*/)[1];
}
var myId = document.getElementById('myid');
var a = document.createElement('div');
// probably an input field, original code uses val()
var genericText = document.documentElement.textContent ? 'textContent' : 'innerText';
a[genericText] = trimString(myId.value);
console.log(a.innerHTML);
Lovin'您的工作在這裏。如果您知道任何Google關閉,您是否可以在修改後的問題的結尾處確認或拒絕我的問題? – Nick
@尼克:我對圖書館不熟悉,但從方法名稱來看,似乎是相同的想法。 –
謝謝。我認爲是這樣的:) – Nick