Hya星,
我想运行一些代码只有在焦点的文本框具有一定的ID。 这里是我的代码:
$("input:text").focus(function() {
if ($(this) == $("#divid")) {
//action
}
});
它不工作,我不知道为什么。
Hya星,
我想运行一些代码只有在焦点的文本框具有一定的ID。 这里是我的代码:
$("input:text").focus(function() {
if ($(this) == $("#divid")) {
//action
}
});
它不工作,我不知道为什么。
尝试通过id直接比较。
if (this.id === "divid") {
// do something
}
谢谢,解决了它。将选择你的答案。 – 2012-08-13 20:09:52
这将永远不会工作,因为每次调用$()
都会返回一个新对象。
但是:
this == $('#divid')[0]
应该工作。或者,正如Kevin B明智地表明的那样,只要看看你的元素是否有问题的“id”。
这可能比比较ID更好。仅仅因为两个ID是平等的并不意味着这两个元素将是相同的。 – jbabey 2012-08-13 20:07:29
@ jbabey它应该是这个意思。 – Fresheyeball 2012-08-13 20:08:44
@jbabey如果你有有效的标记,并且你正在查询DOM中存在的元素,那么OP就不会这样。 – 2012-08-13 20:09:32
$(function(){ // insure your code is runing after document is ready
$("input[type='text']").focus(function() { //css selector
if ($(this).is("#divid")) { // use .is to check the jquery way
//action
}
});
});
您可以使用jQuery的.is
检查。
if($(this).is('#divid')){
}
console.log($(this));你会明白为什么这个条件不起作用。 – 2012-08-13 20:05:46
如果你发布了jsfiddle,它会有所帮助。 – 2012-08-13 20:05:49