我正在创建一个等于已被点击的<a>
文本的变量,然后在if / else语句中使用该变量,但无法使其工作。我知道变量是正确的,我知道该函数有效,因为我可以用“whatever.html”替换它并且它可以工作。但是我无法让变量在其位置上起作用:
$(".themenu a").click(function(){
var stuff = $(this);
if (stuff == "Home"){
$.get("main.html", function(data){
$(".content").append(data);
}, "html");
}
答案 0 :(得分:6)
$(this);
将为您提供一个jQuery对象,而不是它的文本,因此它不会等于"Home"
。使用
var stuff = $(this).text();
或
var stuff = $(this).html();
答案 1 :(得分:4)
您正在设置stuff
变量以引用$(this)
返回的jQuery对象,当您真正想要的是该jQuery对象中的元素文本时,如下所示:
var stuff = $(this).text();
编辑:请注意,您的点击处理程序this
将等同于<a>
元素,您也可以这样做:
var stuff = this.innerHTML;
答案 2 :(得分:2)
您的选择器选择<a>
节点,该节点是一个对象。如果要将其用于比较,首先必须获取该标记的值,ID或内容。
var stuff = $(this);
现在,stuff
包含一个表示<a href="url">Home</a>
元素的DOM对象。
你想要的是提取标签之间的位。
var innerStuff = stuff.text();
当然,直接:
var stuff = $(this).text();
答案 3 :(得分:0)
您应该改为var stuff = $(this).text();
。
答案 4 :(得分:0)
尝试:
var stuff = $(this).text();