我是一个编码新手并且正在寻找一种方法来检查jQuery某个变量的名称是否与div的ID相对应,如果是这样,则会触发一些代码。不幸的是,关于我的语法的一些东西是关闭的,我无法弄清楚是什么。
对于一个简单的例子,我想单击一个div并将div的ID存储为变量,如果我再次单击它,则变量将被清除。由于代码的其余部分,简单地分配另一个布尔变量是不可能的,我需要ID-check-thingy或类似的东西。
这是我到目前为止所得到的:
<div class="testdiv" id="primary">Bananarama</div>
$(document).ready(function() {
$(".testdiv").click(function() {
if ($(this).attr("id") == "#" + clickedElement) {
// if the ID of the clicked div matches the variable, proceed. This is the part that doesn't seem to work
alert ("Victory"); // display alert so we know everything worked out
var clickedElement = null; // reset the variable
} else {
var clickedElement = $(this).attr("id"); // the div has been clicked, assign its ID to the variable
}
});
});
答案 0 :(得分:1)
您可以直接将变量与<button onclick="doMath()">Click</button>
<p id="output"></p>
this.id
但我建议您使用.is()
if(this.id == clickedElement)
if($(this).is('#' + clickedElement))
&#13;
$(document).ready(function() {
var clickedElement;
$(".testdiv").click(function() {
if (this.id == clickedElement) {
// if the ID of the clicked div matches the variable, proceed. This is the part that doesn't seem to work
alert("Victory"); // display alert so we know everything worked out
clickedElement = null; // reset the variable
} else {
clickedElement = this.id; // the div has been clicked, assign its ID to the variable
}
});
});
&#13;
答案 1 :(得分:0)
您的代码中有2个问题:
1)如果在这里比较,你不需要额外的ID选择器。 .attr("id")
返回元素的ID而不是它的选择器。
2)你不需要在if和else条件中重新声明变量。由于在这些条件下重新定义变量只是将其范围限制在该特定条件内。
此外,您应该最小化目标元素的jquery对象的重新创建。创建它一次然后再进一步使用它总是一个很好的做法:
var $this = $(this);
var clickedElement;
if ($this.attr("id") == clickedElement) { // if the ID of the clicked div matches the variable, proceed. This is the part that doesn't seem to work
alert ("Victory"); // display alert so we know everything worked out
clickedElement = null; // reset the variable
} else {
clickedElement = $this.attr("id"); // the div has been clicked, assign its ID to the variable
}