簡體   English   中英

如何比較innerHTML(JavaScript中的字符串比較)

[英]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

來自ECMAScript語言規范

字符串的比較對代碼單元值的序列使用簡單的字典順序。 沒有嘗試使用更復雜的,面向語義的字符或字符串相等性定義以及Unicode規范中定義的整理順序。 因此,根據Unicode標准規范相等的字符串值可以測試為不相等。 實際上,該算法假定兩個字符串都已經處於規范化形式。 另外,請注意,對於包含補充字符的字符串,UTF-16代碼單元值序列上的字典順序不同於代碼點值序列上的字典順序。

x.innerHTMLy.innerHTML字符串 ,因此,如果要將它們的值作為數字,則需要使用Number()將它們y.innerHTML起來,如下所示:

Number(x.innerHTML)>Number(y.innerHTML)

否則,您將比較兩個不等式的字符串,計算機將采用不同的方式,如上另一個答案所示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM