2012-10-01 169 views
1

这是我的线:比较返回false

myArray[i].innerText == x 

下面是从铬控制台的值:

myArray的[I] =“13毫升阿波罗釉雪利酒的Trüffel250毫升”

X = “13毫升阿波罗釉雪利酒的Trüffel250毫升”

myArray的[I] .innerText == X返回false 这是为什么?

这是我如何定义数组myArray:

myArray= $($('#myIframe').contents()).find('body#tinymce').find('p, li'); 

回答

2

调试它的innerText财产,你最有可能有它的一些额外的空格字符。

console.log(escape(myArray[i].innerText)); 

您可能需要trim it

或者HTML实体在那里。

var replacedString = myArray[i].innerText.replace(/ /g," "); 

如果您有一堆特殊字符,则需要将它们全部替换。

+0

你说得对。但是我没有额外的空间,但是第一个字符串有空格,第二个字符串有空格。如何使第二个字符串替换为“”的nbsp? –

+0

编辑了这个问题。 – epascarello

+0

然后比较再次返回false。 –

0

看起来你应该比较myArray[i]而非myArray[i].innerText,看到这是你分配给什么。 myArray[i].innerText将始终产生undefined,如果myArray[i]是一个字符串(除非你正在做一些奇怪的原型)。

1

你没有比较两个字符串。

您比较字符串用相同的字符串

myArray[i] === x 
+0

它返回false:S –

+1

myArrey [i]是一个HTMLParagraphElement –

+0

当我基于您提供的代码构造[示例](http://jsfiddle.net/Bkrnu/)时,它不会返回false。 – Quentin

相关问题