无法比较JavaScript中的两个字符串

时间:2016-05-16 15:21:35

标签: javascript jquery

我有以下功能,它应该根据头部文本返回不同的值:

function getPage(){
  var page;
  var headText = $.trim($('h1').text());

if(headText=="Page 1"){
    page= 'a';
}else if(headText=="Page 2"){
    page= 'b';
}else if(headText=="Page 3"){
    page ='c';
}else if(headText=="Page 4"){
    page= 'd';
}else{
    page= 'ERROR';
}

return page;
}

不幸的是,该函数只返回" ERROR"。我没有修剪方法就试过了。我通过将它们写入自己的变量并比较if()部分中的2个变量来尝试它。什么都行不通。我的错误在哪里? (我确信< h1> - 元素的文本是" Page 1"," Page 2"," Page 3"或"第4页")

2 个答案:

答案 0 :(得分:1)

如果页面上只有一个h1标记,则代码可以正常工作。如果有多个h1标签,那么它们的文本将在headText中连接。

您应该使用id属性唯一标识您的h1标记,以便仅获取该标记的文本。

答案 1 :(得分:1)

首先,console.log(headText);看看你真正得到了什么。

您可能会将h1的孩子的文字添加到h1的文字中 - 请参阅http://api.jquery.com/text/,具体为

  

获取匹配元素集合中每个元素的组合文本内容,包括其后代。 [强调我的]

如果是这种情况,请参阅this question and answer了解解决方案。