jquery比较返回false而不是true
使用$(this).text从HTML页面读取标签并将其与同一字符串进行比较时,返回falsejquery比较返回false而不是true,jquery,Jquery,使用$(this).text从HTML页面读取标签并将其与同一字符串进行比较时,返回false var readText = $(this).text(); // assume $(this).text() reads 1234 for you readText === "1234" //this return false 为什么会有这种行为?另外,如何修复此问题,以便比较将返回true。这是因为1234是一个整数,1234是一个字符串。如果使用==运算符,则检查它们是否具有相同的值+相同的类
var readText = $(this).text(); // assume $(this).text() reads 1234 for you
readText === "1234" //this return false
为什么会有这种行为?另外,如何修复此问题,以便比较将返回true。这是因为
1234
是一个整数,1234
是一个字符串。如果使用==
运算符,则检查它们是否具有相同的值+相同的类型。如果您只想检查它们是否具有相同的值,请使用=
有关JavaScript比较运算符的更多信息:
如果
$(this).text()
是字符串,则应执行$(this).text().trim
。这将删除空格和换行符,这可能导致比较返回false
这是因为1234
是一个整数,1234
是一个字符串。如果使用==
运算符,则检查它们是否具有相同的值+相同的类型。如果您只想检查它们是否具有相同的值,请使用=
有关JavaScript比较运算符的更多信息:
如果
$(this).text()
是字符串,则应执行$(this).text().trim
。这将删除空格和换行符,这可能导致比较返回false
不确定您是否正确
这个简单的小提琴声称:
js是这样的:
$(function () {
var readText = $('#foo').text();
console.log(readText === "1234");
});
其中
#foo
是一个简单的div,内容为1234。不确定您是否正确
这个简单的小提琴声称:
js是这样的:
$(function () {
var readText = $('#foo').text();
console.log(readText === "1234");
});
其中
#foo
是一个简单的div,内容为1234。您可能应该修剪字符串$.trim(readText)==“1234”
如果正确检索字符串,我发现这不太可能。设置一个断点并查看实际值,确保车辆实际上是相同的,而不仅仅是外观相同,等等。如果您做了所有这些,但仍然认为有问题,那么设置一个JSFIDLE。否则,我想大多数人都会理所当然地怀疑。这是什么.text()
对输入元素不起作用,将包含任何子节点的文本。似乎可以正常工作@如果HTML中没有空格,isherwood可以正常工作:您可能应该修剪字符串$.trim(readText)==“1234”
如果正确检索字符串,我发现这不太可能。设置一个断点并查看实际值,确保车辆实际上是相同的,而不仅仅是外观相同,等等。如果您做了所有这些,但仍然认为有问题,那么设置一个JSFIDLE。否则,我想大多数人都会理所当然地怀疑。这是什么.text()
对输入元素不起作用,将包含任何子节点的文本。似乎可以正常工作@如果HTML中没有空格,isherwood可以正常工作:text
返回一个字符串。@未定义,则应首先执行$(this).text().trim()
这将删除可能导致比较失败的空格和换行符是的,我在上面的评论中建议使用jQuery$.trim
+1对于修剪部分。@Jonan,你说:“这可能会导致比较返回false”,你的意思是-true吗?因为它们都是弦。(关于示例)@SergeyBoiko如果$(this).text()结尾有一个换行符或空格,readText==“1234”
将返回false
text
返回一个字符串。@undefined则应首先执行$(this).text().trim()
这将删除可能导致比较失败的空格和换行符是的,我在上面的评论中建议使用jQuery$.trim
+1对于修剪部分。@Jonan,你说:“这可能会导致比较返回false”,你的意思是-true吗?因为它们都是弦。(关于示例)@SergeyBoiko如果$(this).text()
末尾有一个换行符或空格,readText==“1234”
将返回false