如何比较innerHTML(JavaScript中的字符串比较)
我正在按字母顺序筛选表,结果遇到了一个问题。我不理解此代码中的如何比较innerHTML(JavaScript中的字符串比较),javascript,html,string,if-statement,comparison,Javascript,Html,String,If Statement,Comparison,我正在按字母顺序筛选表,结果遇到了一个问题。我不理解此代码中的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 t
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
“albert”<“boby”//true
从
字符串比较对代码单位值序列使用简单的词典排序。没有人试图使用Unicode规范中定义的更复杂、面向语义的字符或字符串相等性和排序顺序定义。因此,根据Unicode标准,规范上相等的字符串值可能被测试为不相等。实际上,该算法假设两个字符串都已处于标准化形式。另外,请注意,对于包含补充字符的字符串,UTF-16代码单位值序列上的字典顺序与代码点值序列上的不同
innerHTML
返回一个字符串,因此您只需比较两个字符串:
"albert" < "boby" // true
“albert”<“boby”//true
从
字符串比较对代码单位值序列使用简单的词典排序。没有人试图使用Unicode规范中定义的更复杂、面向语义的字符或字符串相等性和排序顺序定义。因此,根据Unicode标准,规范上相等的字符串值可能被测试为不相等。实际上,该算法假设两个字符串都已处于标准化形式。另外,请注意,对于包含补充字符的字符串,UTF-16代码单位值序列上的字典顺序与代码点值序列上的不同
x.innerHTML
和y.innerHTML
都是字符串,因此如果希望将它们的值作为数字,则需要用number()
将它们包围起来,如下所示:
Number(x.innerHTML)>Number(y.innerHTML)
否则,您将用一个不等式比较两个字符串,计算机采用不同的方式,如上面的另一个答案所示。
x.innerHTML
和y.innerHTML
都是字符串,因此,如果您想将它们的值作为一个数字,您需要用number()
将它们包围起来,如下所示:
Number(x.innerHTML)>Number(y.innerHTML)
否则,您将用一个不等式比较两个字符串,计算机采用不同的方式,如上面的另一个答案所示。可能与FYI重复,您不需要
getElementsByTagName
在那里<代码>表格。行[1]。单元格[0]也可以正常工作。可能与FYI重复,您不需要getElementsByTagName
<代码>表格。行[1]。单元格[0]也能正常工作。基本上,在JS中,“a”
但是中“b”
因为a在字母表中位于b之前,在JS中基本上是“a”
但是中“b”
因为在alphabet@JamesDouglas我已经添加了一条来自specification@JamesDouglas我已经添加了规范中的注释