Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何比较innerHTML(JavaScript中的字符串比较)_Javascript_Html_String_If Statement_Comparison - Fatal编程技术网

如何比较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我已经添加了规范中的注释