这是一段html代码,
<input type="text" size="10"  name="beginDate" value="<%=DateUtil.formatDate()%>"  readonly="true"><img src="../images/Date.png" border="0" onclick="calDate(this.parent);"></input>,我想在img元素中调用onclick事件中调用一个js方法,但是报错,说这一行语法错误,如果我写成
<input type="text" size="10"  name="beginDate" value="<%=DateUtil.formatDate()%>" onclick="calDate(this);"  readonly="true">就没有问题,可以正确调用函数,我应该怎么改一下呢,img的父元素不是包含它的input吗

解决方案 »

  1.   

    知道了使用onclick="calDate(this.parentNode);"才行
      

  2.   

    不行,后台调用时还是没有获得父元素,因为,我在函数中调用了alert输出元素名字的方法,结果为未定义,如果是<input type="text" size="10" name="beginDate" value="<%=DateUtil.formatDate()%>" onclick="calDate(this);" readonly="true">这种情况calDate函数中可以获得元素名为beginDate,这该怎么办哦
      

  3.   

    问题解决了,其实他们是相邻关系不是父子关系,所有应该写成onclick="calDate(this.previousSibling);就行了
      

  4.   

    你是想获取文本框的值吗? 通过onclick="alert(this.parentNode.nodeName);"发现你那个this.parentNode获得的对象不是input而是body,个人建议你给input设置个id,通过getElementById()来获取input对象onclick="calDate(document.getElementById('input的id').value)";