2009-12-16 76 views
0

jquery无法在我的表内找到任何元素 - 这里是htmlcode。如果我没有指定元素名称#btnLogin,它会将click事件附加到所有元素。当我试图找到一个特定的元素,它只是不拾取。jquery未找到表内的元素

<script> 
    $("#btnLogin").click 
    ( function() 
     { 
      alert('Hi'); 
     } 
    ); 
</script> 
<table width="290px" border="1" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border-style:solid; border: 1px solid; "> 
    <tr>  
    <td width="100%" align="left" valign="top" bgcolor="#FFFFFF" style="padding:5px"><table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#FFFFFF"> 
     <tr> 
     <td width="100%" bgcolor="#9B2301" style="padding:5px"><span class="text2" style="padding:5px">Login...</span></td> 
     </tr> 
     <tr> 
     <td style="padding-top: 8px; padding-left:10px;"> 
       <input name=txtUserName id="txtUserName" style="border:1px solid #CCCCCC;" type="text" value="Username"> 
       <input name=txtPassword id="txtPassword" style="border:1px solid #CCCCCC;" type="text" value="Password"> 
     </td> 
     </tr> 
     <tr> 
     <td valign="middle" style="padding-top: 5px; padding-left:10px;"> 
       <input id="Check" Type=Checkbox style=" font-size:8px;" name="Remember">&nbsp<font style="color: #9B2301; font-weight:bold">Remember Me.</font> | <font style="color: #9B2301; font-weight:bold"><a id="btnLogin" style="color: #666666; font-weight: normal;" href="#">Login</a></font> 
     </td> 
     </tr> 
     <tr> 
     <td valign="middle" align=right style="padding-top: 5px; padding-right:15px;"> 
       <input id="Login" Type="Button" style="font-size:11px; border:1px solid #CCCCCC" name="Login" Value="Login"> 
     </td> 
     </tr> 
    </tr> 
</table> 

任何援助将不胜感激。

感谢

回答

3
<script> 
$(function() { 
    $("#btnLogin").click 
    ( function() 
     { 
      alert('Hi'); 
     } 
    ); 
}); 
</script> 

尝试做它在DOM准备的,而不是甚至生成的元素前/处理/渲染。

+0

是的,你是对的我错了。 +1那 – marcgg 2009-12-16 10:22:39

0

如果您正在寻找#btnLogin,jquery将无法找到它,因为您的输入按钮的登录ID是“Login”。

所以它应该是:

$("#Login").click(function() { 
    alert("Hi"); 
}); 
+0

#btnLogin确实存在作为ID – matpol 2009-12-16 10:33:47

+0

我以为同样的事情。很明显,有一个'a#btnLogin'(包裹在字体标签中)和一个'input#Login'。由于OP的代码非常广泛,所以很难发现。当然,不值得一试。 – czarchaic 2009-12-16 14:14:11

+0

谢谢沙尔克! – mallows98 2009-12-18 11:38:55

0

当你的函数试图连接单击处理,元素可能不存在。尝试

<script> 
    $(function() { 
     $("#btnLogin").click(function() { 
       alert('Hi'); 
     }); 
    }); 
</script> 

$(function(){...});部分会让jQuery等待页面准备就绪,并且在找到ID为btnLogin的元素并附加点击处理程序之前,所有元素都存在。

2

您正在加载页面之前运行脚本,因此您正在搜索的元素尚不存在。

尝试在文档准备就绪时运行脚本。

$(document).ready(function() { 
    $("#btnLogin").click 
    ( function() 
     { 
      alert('Hi'); 
     } 
    ); 
});