首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

js获得动态生成对象的属性有有关问题

2012-11-09 
js获得动态生成对象的属性有问题?问下js对于动态生成的对象的属性可以获得不?我的问题如下:代码:

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 &amp; Repairs(Contract Limit:RMB2,075,000)</option> 
<option value="20101636">Alterations &amp; 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 &amp; Repairs(Contract Limit:RMB2,075,000)</option> 
<option value="20101636" >Alterations &amp; 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); 

热点排行