[英]How to compare innerHTML (string comparison in JavaScript)
我正在按字母順序過濾表,然后遇到了問題。 我不理解此代碼中的x.innerHTML > y.innerHTML
概念:
table = document.getElementById('myTable');
rows = table.getElementsByTagName('tr');
x = rows[1].getElementsByTagName('td')[0];
y = rows[2].getElementsByTagName('td')[0];
//check if the two rows should switch place:
console.log(x.innerHTML.length, y.innerHTML.length);
console.log(x.innerHTML > y.innerHTML);
它是如何工作的?
innerHTML
返回一個字符串,因此您只需比較兩個字符串:
"albert" < "boby" // true
字符串的比較對代碼單元值的序列使用簡單的字典順序。 沒有嘗試使用更復雜的,面向語義的字符或字符串相等性定義以及Unicode規范中定義的整理順序。 因此,根據Unicode標准規范相等的字符串值可以測試為不相等。 實際上,該算法假定兩個字符串都已經處於規范化形式。 另外,請注意,對於包含補充字符的字符串,UTF-16代碼單元值序列上的字典順序不同於代碼點值序列上的字典順序。
x.innerHTML
和y.innerHTML
是字符串 ,因此,如果要將它們的值作為數字,則需要使用Number()
將它們y.innerHTML
起來,如下所示:
Number(x.innerHTML)>Number(y.innerHTML)
否則,您將比較兩個不等式的字符串,計算機將采用不同的方式,如上另一個答案所示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.