高分求助, jquery同jsp混合编程,获取不到对象

nomis827 2014-06-30 09:33:54
我页面里的 li是靠jsp循环生成的


<div id="mydiv">
<ul>
<%
sqlstr="select distinct(baoyear) from baozhi order by baoyear DESC";
rs=DBconn1.executeQuery(sqlstr);
while(rs.next())
{
out.print(" <li id=\"myli"+rs.getString("baoyear")+"\">"+rs.getString("baoyear")+"年</li>");
}
%>
</ul>
</div>


由于li的id是动态生成的,所以我javascript也是靠动态生成



<script language="javascript">
$(document).ready(function(){
<%
rs=DBconn1.executeQuery(sqlstr);
int i=1;
while(rs.next())
{
%>
$("#myli<%=rs.getString("baoyear")%>").click(function(){
$("#showtext").load("showkuai.jsp?year=<%=rs.getString("baoyear")%>")
});
<%
}
DBconn1.closeDB();

%>


</script>


但是报无法获取对象的js提示



我简单调试改为

<script src="jquery-1.4.1.min.js" type="text/javascript"></script>
<script language="javascript">

$("#myli2014").click(function(){

});

</script>


也是报同样的错误,问题就集中在 $("#myli2014")获取不到对象。 原因是 <li id=myli2014> 是靠动态编程jsp生成的。


可我在解析后的网页源码里


<tr>
<td><div id="mydiv">
<ul>
<li id="myli2014">2014年</li>
</ul>
</div></td>
</tr>
</table></td>
</tr>
<tr>
<td height="20" align="center" valign="middle" bgcolor="#FFFFFF"><br /></td>
</tr>

</table>
<script language="javascript">

$("#myli2014").click(function(){
$("#showtext").load("showkuai.jsp?year=2014")
});




</script>

能看到该li对象被成功解析
...全文
159 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
nomis827 2014-07-01
  • 打赏
  • 举报
回复
反复测试发现屎低级错误造成的,散分
KK3K2005 2014-06-30
  • 打赏
  • 举报
回复
报无法获取对象的js提示 那一行报错
Go 旅城通票 2014-06-30
  • 打赏
  • 举报
回复
    $(document).ready(function () {
$('li[id^="myli"]').click(function () {
var id = this.id.replace('myli', ''); //替换掉前缀得到数据id
$("#showtext").load("showkuai.jsp?year="+id)
});
});


使用属性选择器就好了。。
恶心鬼 2014-06-30
  • 打赏
  • 举报
回复
$("#myli2014") 即使这个找不到,你绑定click方法也不会报错的,问题在别处~~
KK3K2005 2014-06-30
  • 打赏
  • 举报
回复
引用 3 楼 pegasus827 的回复:
我把多余的语句删了删 ,发现 就是 $("#myli2014"). 这个报错
正常情况下 这个是不会报错的 就算id=myli2014的li不存在也没事 你要检查下 其他原因
别闹腰不好 2014-06-30
  • 打赏
  • 举报
回复
<script language="javascript"> $(document).ready(function(){ <% rs=DBconn1.executeQuery(sqlstr); int i=1; while(rs.next()) { %> $("#myli<%=rs.getString("baoyear")%>").click(function(){ $("#showtext").load("showkuai.jsp?year=<%=rs.getString("baoyear")%>") }); <% } DBconn1.closeDB(); %> }) </script> $(document).ready(function(){})这个会保证页面元素加载完,才执行JS。 你的代码好像是没有输出完整。
pegasus827 2014-06-30
  • 打赏
  • 举报
回复
我把多余的语句删了删 ,发现 就是 $("#myli2014"). 这个报错

87,917

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧