js获得动态生成对象的属性有问题?
问下js对于动态生成的对象的属性可以获得不?
我的问题如下:
代码:
=======================================================================================
<html>
<head>
<title>Insurance(PAFA3项目模板主布局)</title>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<link rel="stylesheet" href="/Insurance/layout/default.css" type="text/css">
</head>
<body>
<table width="100%" height="100%" border="0" cellspacing="0" border="0">
<tr height="30">
<td class="header" valign="top" colspan="2"><div align="right" class="logo">Insurance:页首</div> </td>
</tr>
<tr>
<td valign="top" align="center" class="menu" nowrap>
<br><strong>Insurance:</strong>菜单
<br><a href="/Insurance/addBasic.do">增加保单</a>
</td>
<td valign="top" class="content">
<form name="lialityForm" method="post" action="/Insurance/addBasic.do">
<input type="hidden" name="numPlans" value=""/>
<table>
<tr><td>保单号:</td>
<td><input type="text" value="" name="id"/></td></tr>
<tr><td>业务类型</td>
<td><input type=radio name="bizKind" value="0" />团体
<input type=radio name="bizKind" value="1" checked/>个人
</td></tr>
<tr><td>险种大类</td>
<td><select name="bigKind">
<option value="A">非水险</option>
<option value="B">水险</option>
<option value="C">车险2</option>
</select></td></tr>
<tr><td>险种</td>
<td><select name="guarantName">
<option value="A00">财产保险基本险</option>
<option value="A01">财产保险综合险</option>
<option value="A02">财产保险</option>
</select></td></tr>
<tr><td>保额</td><td><input type="text" value="0.0"name="guarantNumber"></td></tr>
<tr><td>费率</td><td><input type="text" value="0.0"name="guarantRate"></td></tr>
<tr><td>保费</td>
<td><input type="text" value="0.0"name="guarantMoney"></td></tr>
<tr><td>保费期限</td>
<td><input type="text"value=""name="startDate">
<input type="text" value=""name="endDate"></td></tr>
<tr><td>录入日期</td>
<td><input id="inDate" type="text" value=""name="inDate"></td></tr>
<tr><td>楼宇项目</td>
<td><input type="checkbox" name="isStoreBuilding"/></td></tr>
<tr><td>特别约定</td>
<td><input type="text" value=""name="speciAssumpsit"></td></tr>
</table>
<table id="lialityTable" width="877" border="1">
<tr>
<td valign="top"><p>选择 </p></td>
<td valign="top"><p>责任代码 </p></td>
<td valign="top"><p>责任名称 </p></td>
<td valign="top"><p>保额/限额 </p></td>
<td valign="top"><p>费率(%)</p></td>
<td valign="top"><p>保费 </p></td>
<td valign="top"><p>备注 </p></td>
</tr>
<tr id="lialityRow" style="display:'none'">
<td height="26"><input type="checkbox" name="checkbox" value="checkbox" /></td>
<td><input name="liaBilitys[@].lialityID" type="text" size="8" /></td>
<td><select name="liaBilitys[@].lialityNAME" onchange="getDutyCode(this)">
<option value="20101635">Alterations & Repairs(Contract Limit:RMB2,075,000)</option>
<option value="20101636">Alterations & Repairs(Contract limit:USD250000.00)</option>
<option value="20101637">Alterations And Repairs Clause</option>
</select></td>
<td><input name="liaBilitys[@].guarantNumber" type="text" size="15" /></td>
<td><input name="liaBilitys[@].guarantRate" type="text" size="5" maxlength="15" />%</td>
<td><input name="liaBilitys[@].guarantMoney" type="text" size="15" /> </td>
<td><input name="liaBilitys[@].remark" type="text" /></td>
</tr>
<tr>
<td height="26"><input type="checkbox" name="planIndex" value='0'/></td>
<td><input name="liaBilitys[0].lialityID"type="text" size="8" value=""/></td>
<td><select name="liaBilitys[0].lialityNAME" onchange="getDutyCode(this)">
<option value="20101635" >Alterations & Repairs(Contract Limit:RMB2,075,000)</option>
<option value="20101636" >Alterations & Repairs(Contract limit:USD250000.00)</option>
<option value="20101637" >Alterations And Repairs Clause</option>
</select></td>
<td><input name="liaBilitys[0].guarantNumber"type="text" size="15" value="0.0"/></td>
<td><input name="liaBilitys[0].guarantRate" type="text" size="5" value="0.0"/>%</td>
<td><input name="liaBilitys[0].guarantMoney" type="text" size="15" value="0.0"/></td>
<td><input name="liaBilitys[0].remark"type="text" value=""/></td>
</tr>
</table>
<input type="button" name="Submit" value="增加" onclick="addRow()"/>
<input type="button" name="Submit2" value="删除" onclick="deleteRow()"/>
<p>
<input type="submit" value="确定" name="B1" >
<input type="reset" value="重置" name="B2">
</p>
</form>
<SCRIPT language="JavaScript">
var i=0;
//添加行
function addRow(){
var newTR = lialityRow.cloneNode(true);
newTR.id="a"+(++i);
newTR.style.display='';
lialityRow.parentNode.insertAdjacentElement("beforeEnd",newTR);
renameField("lialityTable");
}
//删除行
function deleteRow(){
var zone = document.getElementById("lialityTable");
len = zone.rows.length;
if(len>1){
zone.deleteRow(-1);
}
}
function renameField(tableId){
// 找到TABLE对象
var oTable = document.getElementById(tableId);
var LEFT_TOKEN = "[";
var RIGHT_TOKEN = "].";
// 遍历每行
for (i=2; i<oTable.rows.length; i++){
var oRow = oTable.rows[i];
// 遍历每列
if(oRow.id=="lialityRow"){
;
}else{
for (j=0;j<oRow.cells.length;j++){
oCell = oRow.cells[j];
// 找到单元格TD里面包含的对象
var oField = oCell.children[0];
// 如果是text和select类型的对象
if ((oField != null && oField.type != null) &&
(oField.type == "text" || oField.type == "select-one")){
var fieldName = oField.name
// 替换LEFT_TOKEN和RIGHT_TOKEN,进行顺序改名
var leftTokenPos = fieldName.indexOf(LEFT_TOKEN);
var rightTokenPos = fieldName.indexOf(RIGHT_TOKEN);
if (leftTokenPos > 0 && rightTokenPos>leftTokenPos){
fieldName = fieldName.substring(0, leftTokenPos) + LEFT_TOKEN + (i-2) + RIGHT_TOKEN + fieldName.substring(rightTokenPos+RIGHT_TOKEN.length, fieldName.length);
} else {
fieldName = fieldName + LEFT_TOKEN + (i-2) + RIGHT_TOKEN;
}
oField.name = fieldName;
//oField.value = fieldName;
}
}
}
}
// 修改记录数
document.lialityForm.numPlans.value = (oTable.rows.length-2);
}
//根据选择的责任险自动添入责任险代码
function getDutyCode(select){
var name=select.name;
var re=/lialityNAME/i;
var id;
id=name.replace(re,'lialityID');
alert("责任险代码输入栏name:"+id);
var s=document.getElementsByName(id);
alert("责任险代码输入栏name:"+s.name);
}
</Script>
</td>
</tr>
<tr valign="bottom" >
<td class="footer" colspan="2"><div align="right"><span style="font-variant: small-caps">Insurance</span> powered by <strong>PAFA3项目模板</strong></div> </td>
</tr>
</table>
</body>
</html>
=======================================================================================
function getDutyCode(select){
var name=select.name;
var re=/lialityNAME/i;
var id;
id=name.replace(re,'lialityID');
alert("责任险代码输入栏name:"+id);
var s=document.getElementsByName(id);
alert("责任险代码输入栏name:"+s.name);
}
在这个函数中我拼装出责任险代码输入栏的name,但是再由该名字却取不到责任险代码输入栏的属性,请指点下
[解决办法]
var s=document.getElementsByName(id);
此时你的s是一个数组,你可以这样
alert("责任险代码输入栏name:"+s[0].name);