在if/else语句中使用变量
问题描述:
我正在创建一个变量,该变量等于已被点击的<a>
的文本,然后在if/else语句中使用该变量,但无法使其工作。我知道这个变量是正确的,我知道这个函数可以工作,因为我可以用一个“whatever.html”代替它并且它可以工作。但是我不能让该变量在其工作场所:在if/else语句中使用变量
$(".themenu a").click(function(){
var stuff = $(this);
if (stuff == "Home"){
$.get("main.html", function(data){
$(".content").append(data);
}, "html");
}
答
$(this);
将让你一个jQuery对象,而不是它的文本,这样就不会等于"Home"
。使用
var stuff = $(this).text();
或
var stuff = $(this).html();
答
你设置你的stuff
变量引用由$(this)
,返回的jQuery对象,当你真正想要的是什么元素在jQuery对象,如文本所以:
var stuff = $(this).text();
编辑:请注意,在点击处理this
将等于<a>
元素,你也可以这样做:
var stuff = this.innerHTML;
答
您的选择器选择作为对象的<a>
节点。如果您想使用它进行比较,您首先必须获取该标签的值,ID或内容。
var stuff = $(this);
现在,stuff
包含表示<a href="url">Home</a>
元件的DOM对象。 你想要的是提取标签之间的位。
var innerStuff = stuff.text();
,当然您也可以直接:
var stuff = $(this).text();
如果你想HTML出现在与'字符您的问题引号,(我已经更新了你的问题要做到这一点)。 – nnnnnn
我想你必须改变第二行到'var stuff = $(this).text();' – Teneff