Javascript If语句,$(this)=$(“div”)
嗨 我只想在焦点文本框具有特定ID时运行一点代码。 这是我的密码:Javascript If语句,$(this)=$(“div”),javascript,jquery,Javascript,Jquery,嗨 我只想在焦点文本框具有特定ID时运行一点代码。 这是我的密码: $("input:text").focus(function() { if ($(this) == $("#divid")) { //action } }); 它不起作用,我不知道为什么。尝试直接通过id进行比较 if (this.id === "divid") { // do something } 这是行不通的,因为每次调用$()都会返回一个新对象
$("input:text").focus(function() {
if ($(this) == $("#divid")) {
//action
}
});
它不起作用,我不知道为什么。尝试直接通过id进行比较
if (this.id === "divid") {
// do something
}
这是行不通的,因为每次调用
$()
都会返回一个新对象
然而:
this == $('#divid')[0]
应该有用。或者,正如Kevin B明智地建议的那样,只需查看您的元素是否有问题的“id”。您可以使用jQuery的
.is
进行检查
$(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
}
});
});
if($(this).is('#divid')){
}
log($(this));您将看到为什么这个条件不起作用。如果您发布一个JSFIDLE会有所帮助。这可能比比较ID更好。仅仅因为两个ID相等并不意味着这两个元素将是相同的。@jbabey如果您有有效的标记,并且您正在以OP的方式查询DOM中的元素,则情况不会如此。@jbabey如果有多个ID相同的元素,则不能保证由
$(“#divid”)选择的元素
将是此
,因为$(“#divid”)
将仅正确选择具有该id的第一个元素。@KevinB是的,我同意,但在涉及不正确标记的情况下,无论如何事情都有点不正常。@Pointy是的,如果标记正确,您的解决方案肯定会有效,我只是在为你的答案辩护,而不是为jbabey的评论辩护P