我有以下功能,它应该根据头部文本返回不同的值:
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页")
答案 0 :(得分:1)
如果页面上只有一个h1标记,则代码可以正常工作。如果有多个h1标签,那么它们的文本将在headText中连接。
您应该使用id属性唯一标识您的h1标记,以便仅获取该标记的文本。
答案 1 :(得分:1)
首先,console.log(headText);
看看你真正得到了什么。
您可能会将h1
的孩子的文字添加到h1
的文字中 - 请参阅http://api.jquery.com/text/,具体为
获取匹配元素集合中每个元素的组合文本内容,包括其后代。 [强调我的]
如果是这种情况,请参阅this question and answer了解解决方案。