代码如下
function getvalue(){
var value=document.getElementsByName("annotation").value;
for(var i=0;i<value.length;i++){
alert(value[i]);
}
}
<c:forEach items=${list} var="str">
<input type="text" name="annotation" onclick="getvalue();" value="<c:out value="${str}"/>"/>
</c:forEach>
为什么运行程序后,点击循环显示的文本框时,js部分的代码没有反应呢?

解决方案 »

  1.   

    document.getElementsByName 返回的是数组
    应写作
    var value = document.getElementsByName("annotation");
      

  2.   

    楼上没写全,我补充一下
    function getvalue(){
    var value=document.getElementsByName("annotation");
    for(var i=0;i<value.length;i++){
    alert(value[i].value);
    }
    }
      

  3.   

    (....).value ... to (...)
      

  4.   

    我还是想问下2楼的,这种情况下只能先document.getElementsByName("annotation")后,再在循环中去遍历.value么,像我那样直接document.getElementsByName("annotation").value为什么不可以呢?