日期:2014-05-17  浏览次数:20751 次

关于js给动态生成的标签属性赋值的问题,高手请围观呀!


function success(data){
var arr = data;  //把获取到的json字符串赋值给arr
       //动态的生成表格的行
 var tab = document.getElementById("autoTable");
 //删除现表格中的所有数据
 var rowNum = tab.rows.length;
 for(var i=0;i<rowNum;i++ ){
     tab.deleteRow(i);
         rowNum=rowNum-1;
         i=i-1;
 }
for(var i=0;i<arr.length;i++){
//截取字符串
var initseftPath = arr[i];
        var subPath = arr[i].substring(arr[i].lastIndexOf("\\")+1) //截取路径,保留d:\aa\bb最后一个'\'后的内容 即  bb
var newTr =  tab.insertRow(-1);
var newTd0 = newTr.insertCell(0);
var newTd1 = newTr.insertCell(1);
newTd0.innerHTML = '<input type=checkbox id="box4">';
newTd1.innerHTML= '<a href="#" style="text-decoration: underline;color: blue;font-size: 14px"onclick="show(this)" selfPath="<%=initseftPath%>"'+subPath+'</a>';
}
}



我动态生成的第二个单元格中是一个超链接的形式,在超链接的位置我想显示截取后的内容,但是完整的内容我想赋给这个超链接(a标签)的一个属性保存,但是不知道为什么,我这个属性的值就是保存不了,按我上面写得代码,当我获取selfPath属性时候获取到的是="<%=initseftPath%>,请问我怎么样才能获取到  initselfPath的内容?我的代码该怎么修改? 
jsp js java

------解决方案--------------------
表格用纯JS操作,是只读的吧  你用jquery可以试试。
------解决方案--------------------
<%=initseftPath%> 这是标签你放到JS中是取不到的。
1,你可以把initseftPath 以名值对的型式放到共享对象中用EL表达式取,JS中可以直接使用EL表达式。
2,你可以声明一个全局的JS变量,  比如:var  s=<%=initseftPath%> ;之后JS中就可以使用这个变量了。
------解决方案--------------------
类似这种  <c:set var="basePath" value="${pageContext.request.contextPath}"/>
然后 你就可以用${basePth}
------解决方案--------------------
<%=initseftPath%>
最好写到input type=hidden中,比如
<input type="hidden" id="initPath" value="${initseftPath}">

js中用:
var path = document.getElementById("initPath").value;
alert(path);