如何在動態加載對象(如文本框)後,用另一個object變量(即引用)將該對象保存下來? 將該對象保存?如果要使用是可以直接用document.getElementById()等取到这个对像, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的意思是,比如:從數據庫中讀取一批記錄,然後將它們顯示在頁面上的input對象內,因此要達到這樣的目的,必須加載與數據記錄數量相同的input對象,input對象的name或id也需動態產生,並且將該對象用一個數組保存下來,因為我需要通過該對象獲取其Value值,並將該值賦給同一頁面內的其它input對象。我的頁面設計是這樣的:頁面上半部分為修改記錄區,下半部分記錄顯示區,通過點擊下面記錄,將該條記錄顯示到修改記錄區。希望回復者能貼出Demo,THS! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> New Document </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT=""><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""><SCRIPT LANGUAGE="JavaScript">function func(){if(document.getElementsByName("text2")[0].value !=""){document.getElementsByName("text1")[0].value=document.getElementsByName("text2")[0].value;}else{alert("nothing")}}</SCRIPT></HEAD><BODY><input type="text" name="text1"><div>****************************************************</div><input type="text" name="text2"><input type="button" value="111" onclick="func()"></BODY></HTML>你的实现不难,上面只是简单的,就算生成多个input對象,input對象的name或id也需動態產生,还能用document.getElementsByName("text2")得到他们的值 大體思路是對了的但是document.getElementsByName("text2")[0].value;中,怎麼才能把當前單擊的記錄行顯示上去呢?也就是事先並不知道是哪一行,必須通過事件動態觸發決定。我的做法是:每個字段設定一個數組,再用一個i變量來控制,這樣之後,某一行的文本框的id值為first[i] second[i] third[i], 但調用函數傳參比較麻煩 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> New Document </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT=""><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""><SCRIPT LANGUAGE="JavaScript">function func11(){if(document.getElementsByName("text2")[0].value !=""){document.getElementsByName("text1")[0].value=document.getElementsByName("text2")[0].value;}else{alert("nothing")}}function func(){ if(document.getElementsByName("text2")[0].value !=""){ var aa=document.getElementById("table1") var bb=document.getElementById("table2") //alert(aa) //alert(aa.childNodes[0].innerHTML) //alert(aa.childNodes[0].childNodes[0].innerHTML) //alert(aa.childNodes[0].childNodes.length) //alert(aa.childNodes[0].childNodes[0].childNodes.length) for(var i=0;i<aa.childNodes[0].childNodes[0].childNodes.length;i++){ aa.childNodes[0].childNodes[0].childNodes[i].childNodes[0].value=bb.childNodes[0].childNodes[0].childNodes[i].childNodes[0].value } }else{ alert("nothing") }}</SCRIPT></HEAD><BODY><table id="table1"> <tr> <td><input type="text" name="text1"> </td> <td><input type="text" name="text1"> </td> <td><input type="text" name="text1"> </td> </tr></table><div>****************************************************</div><table id="table2"> <tr> <td><input type="text" name="text2"> </td> <td><input type="text" name="text2"> </td> <td><input type="text" name="text2"> </td> <td><input type="button" value="111" onclick="func(this)"> </td> </tr></table></BODY></HTML> 能不能講一講這一句aa.childNodes[0].childNodes[0].childNodes[i].childNodes[0].value?看不大明白能不能單擊哪一行就顯示哪一行(通過input對象的onFocus事件去觸發賦值的動作),而不是通過一個按鈕把整個table的內容顯示到另一個table里 要是方便的話,加偶QQ--117781412,OK?偶發那個JSP文件及DataBase給你 銘軒,其中的一部分代碼改成如下所示的時候,alert輸出的為什麼是Tbody?<table onclick="alert(this.childNodes[0].tagName)" id="table1"> <tr> <td><input type="text" name="text1" > </td> <td><input type="text" name="text1"> </td> <td><input type="text" name="text1"> </td> </tr></table> table得第1个子节点是tbody<table > <tbody> <tr> <td> </td> </tr> </tbody></table>这是table的结构,平时都隐藏了tbody,但用table 的属性时,必须要经过tbody 經過幾次改正後,但還有點問題,幫偶看看,OK?源代碼如下:<%@page contentType="text/html;charset=big5"%><%@page import="java.sql.*"%><script language="javascript">function fuZi(obj){var aa=document.getElementById("table1")aa.childNodes[0].childNodes[1].childNodes[0].childNodes[0].value=obj.parentNode.childNodes[0].value;aa.childNodes[0].childNodes[1].childNodes[1].childNodes[0].value=obj.parentNode.childNodes[1].value;aa.childNodes[0].childNodes[1].childNodes[2].childNodes[0].value=obj.parentNode.childNodes[2].value;aa.childNodes[0].childNodes[1].childNodes[3].childNodes[0].value=obj.parentNode.childNodes[3].value;}</script> <%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\Program Files\\Apache Software Foundation\\Tomcat 5.0\\webapps\\test\\test.mdb";Connection con = DriverManager.getConnection(url);Statement stmt = con.createStatement();ResultSet rs=stmt.executeQuery("select count(*) from User_info");rs.next();int count=rs.getInt(1);rs.close();ResultSet rst= stmt.executeQuery("select * from User_info");%><style type="text/css"><!--.style2 {color: #0000FF}.textStyle{ border: none; color: #666666;}--></style><p> </p><table id="table1" name="tbl_action" width="748" height="46" border="1" align="center"> <tr align="center" valign="middle"> <th height="17" scope="col">賬號</th> <th scope="col">姓名</th> <th scope="col">密碼</th> <th scope="col">身份</th> </tr> <tr align="center" valign="middle"> <td><input name="id" type="text"> </td> <td><input type="text" name="name"> </td> <td><input type="text" name="password"></td> <td><input type="text" name="status"></td> </tr></table><p> 共有<%=count%>條記錄</p><p> </p><table border='1'><tr class="style2" scope="row"> <td width="300" >賬號</a></td> <td width="300">姓名</a></td> <td width="300">密碼</a></td> <td width="300">身份</a></td> </tr><%while (rst.next()){ String user_id=rst.getString("UserID"); String name=rst.getString("Name"); String password=rst.getString("Password"); byte status=rst.getByte("Status");%> <tr> <td width="300"><input type="text" class=textStyle readonly="true" onFocus="return fuZi(this);" value=<%=user_id %>></td> <td width="300"><input type="text" class=textStyle readonly="true" onfocus="return fuZi(this);" value=<%=name%>></td> <td width="300"><input type="text" class=textStyle readonly="true" onfocus="return fuZi(this);" value=<%=password%>></td> <% if(status==1){ %> <td width='300'><input type="text" class=textStyle readonly="true" onfocus="return fuZi(this);" value=管理員></td><% }else{ %> <td width='300'><input type="text" class=textStyle readonly="true" onfocus="return fuZi(this);" value=使用者></td> </tr><% } } %><br></table><p> </p> 你这个是jsp我不能运行的,你有什么问题? <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> New Document </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT=""><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""><SCRIPT LANGUAGE="JavaScript">function func11(){if(document.getElementsByName("text2")[0].value !=""){document.getElementsByName("text1")[0].value=document.getElementsByName("text2")[0].value;}else{alert("nothing")}}function func(){ if(document.getElementsByName("text2")[0].value !=""){ var aa=document.getElementById("table1") var bb=document.getElementById("table2") //alert(aa) //alert(aa.childNodes[0].innerHTML) //alert(aa.childNodes[0].childNodes[0].innerHTML) //alert(aa.childNodes[0].childNodes.length) //alert(aa.childNodes[0].childNodes[0].childNodes.length) for(var i=0;i<aa.childNodes[0].childNodes[0].childNodes.length;i++){ aa.childNodes[0].childNodes[0].childNodes[i].childNodes[0].value=bb.childNodes[0].childNodes[0].childNodes[i].childNodes[0].value } }else{ alert("nothing") }}</SCRIPT></HEAD><BODY><table id="table1"> <tr> <td><input type="text" name="text1"> </td> <td><input type="text" name="text1"> </td> <td><input type="text" name="text1"> </td> </tr></table><div>****************************************************</div><table id="table2"> <tr> <td><input type="text" name="text2" onblur="func(this)"> </td> <td><input type="text" name="text2" onblur="func(this)"> </td> <td><input type="text" name="text2" onclick="func(this)"> </td> <td> </td> </tr></table></BODY></HTML> 他的事件可以用 onclick ,onblur等 運行的時候這一句,報錯了aa.childNodes[0].childNodes[1].childNodes[1].childNodes[0].value=obj.parentNode.childNodes[1].value;錯誤為:obj.parentNode.childNodes[1]是null或不是一個物件,但是這一句跟前一句是同一類的句子,前一句沒錯,為什麼這一句錯了 obj 代表 inputobj.parentNode代表input在的 rd ,td只有childNodes[0]obj.parentNode.parentNode.parentNode.childNodes[0].childNodes[1].childNodes[1].childNodes[0].value 你把你的东西简化成个html,这样别人好改 銘軒,你們一天工作多少小時,你是搞ASP.NET的? Ext 布局 高手进 js访问webserivce xml解析问题(不会的捧人场刷每天分) 如何设置网址中的动态日期 js 调用xmpp方法(能解决再加100分) MS.NET AJAX里的有些代码看不懂,求教! 做个显示和隐藏的功能,有空的帮忙看下啊 一个可能很简单的问题!!帮忙! document.images是什么意思? 如何取字符串中的字符? 键值捕获 如何使用JAVASCRIPT隐藏浏览器的工具栏和菜单 N多人无法解决的问题 困饶了我整整一个礼拜的问题 请问可有高人指点迷津 感激不尽
我的頁面設計是這樣的:頁面上半部分為修改記錄區,下半部分記錄顯示區,通過點擊下面記錄,將該條記錄顯示到修改記錄區。
希望回復者能貼出Demo,THS!
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
function func(){
if(document.getElementsByName("text2")[0].value !=""){
document.getElementsByName("text1")[0].value=document.getElementsByName("text2")[0].value;
}else{
alert("nothing")
}
}
</SCRIPT>
</HEAD><BODY>
<input type="text" name="text1">
<div>****************************************************</div>
<input type="text" name="text2">
<input type="button" value="111" onclick="func()">
</BODY>
</HTML>你的实现不难,上面只是简单的,就算生成多个input對象,input對象的name或id也需動態產生,还能用document.getElementsByName("text2")得到他们的值
但是document.getElementsByName("text2")[0].value;中,怎麼才能把當前單擊的記錄行顯示上去呢?也就是事先並不知道是哪一行,必須通過事件動態觸發決定。
我的做法是:每個字段設定一個數組,再用一個i變量來控制,這樣之後,某一行的文本框的id值為first[i] second[i] third[i], 但調用函數傳參比較麻煩
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
function func11(){
if(document.getElementsByName("text2")[0].value !=""){
document.getElementsByName("text1")[0].value=document.getElementsByName("text2")[0].value;
}else{
alert("nothing")
}
}
function func(){
if(document.getElementsByName("text2")[0].value !=""){
var aa=document.getElementById("table1")
var bb=document.getElementById("table2")
//alert(aa)
//alert(aa.childNodes[0].innerHTML)
//alert(aa.childNodes[0].childNodes[0].innerHTML)
//alert(aa.childNodes[0].childNodes.length)
//alert(aa.childNodes[0].childNodes[0].childNodes.length)
for(var i=0;i<aa.childNodes[0].childNodes[0].childNodes.length;i++){
aa.childNodes[0].childNodes[0].childNodes[i].childNodes[0].value=bb.childNodes[0].childNodes[0].childNodes[i].childNodes[0].value
}
}else{
alert("nothing")
}}
</SCRIPT>
</HEAD><BODY>
<table id="table1">
<tr>
<td><input type="text" name="text1">
</td>
<td><input type="text" name="text1">
</td>
<td><input type="text" name="text1">
</td>
</tr>
</table>
<div>****************************************************</div>
<table id="table2">
<tr>
<td><input type="text" name="text2">
</td>
<td><input type="text" name="text2">
</td>
<td><input type="text" name="text2">
</td>
<td><input type="button" value="111" onclick="func(this)">
</td>
</tr>
</table></BODY>
</HTML>
偶發那個JSP文件及DataBase給你
其中的一部分代碼改成如下所示的時候,alert輸出的為什麼是Tbody?
<table onclick="alert(this.childNodes[0].tagName)" id="table1">
<tr>
<td><input type="text" name="text1" >
</td>
<td><input type="text" name="text1">
</td>
<td><input type="text" name="text1">
</td>
</tr>
</table>
<table >
<tbody>
<tr>
<td>
</td>
</tr>
</tbody>
</table>
这是table的结构,平时都隐藏了tbody,但用table 的属性时,必须要经过tbody
源代碼如下:
<%@page contentType="text/html;charset=big5"%>
<%@page import="java.sql.*"%>
<script language="javascript">
function fuZi(obj)
{
var aa=document.getElementById("table1")
aa.childNodes[0].childNodes[1].childNodes[0].childNodes[0].value=obj.parentNode.childNodes[0].value;
aa.childNodes[0].childNodes[1].childNodes[1].childNodes[0].value=obj.parentNode.childNodes[1].value;
aa.childNodes[0].childNodes[1].childNodes[2].childNodes[0].value=obj.parentNode.childNodes[2].value;
aa.childNodes[0].childNodes[1].childNodes[3].childNodes[0].value=obj.parentNode.childNodes[3].value;
}
</script>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\Program Files\\Apache Software Foundation\\Tomcat 5.0\\webapps\\test\\test.mdb";
Connection con = DriverManager.getConnection(url);
Statement stmt = con.createStatement();
ResultSet rs=stmt.executeQuery("select count(*) from User_info");
rs.next();
int count=rs.getInt(1);
rs.close();
ResultSet rst= stmt.executeQuery("select * from User_info");
%>
<style type="text/css">
<!--
.style2 {color: #0000FF}
.textStyle{
border: none;
color: #666666;
}
-->
</style><p>
</p>
<table id="table1" name="tbl_action" width="748" height="46" border="1" align="center">
<tr align="center" valign="middle">
<th height="17" scope="col">賬號</th>
<th scope="col">姓名</th>
<th scope="col">密碼</th>
<th scope="col">身份</th>
</tr>
<tr align="center" valign="middle">
<td><input name="id" type="text"> </td>
<td><input type="text" name="name"> </td>
<td><input type="text" name="password"></td>
<td><input type="text" name="status"></td>
</tr>
</table>
<p> 共有<%=count%>條記錄</p>
<p> </p>
<table border='1'>
<tr class="style2" scope="row">
<td width="300" >賬號</a></td>
<td width="300">姓名</a></td>
<td width="300">密碼</a></td>
<td width="300">身份</a></td>
</tr>
<%
while (rst.next())
{
String user_id=rst.getString("UserID");
String name=rst.getString("Name");
String password=rst.getString("Password");
byte status=rst.getByte("Status");
%>
<tr>
<td width="300"><input type="text" class=textStyle readonly="true" onFocus="return fuZi(this);" value=<%=user_id %>></td>
<td width="300"><input type="text" class=textStyle readonly="true" onfocus="return fuZi(this);" value=<%=name%>></td>
<td width="300"><input type="text" class=textStyle readonly="true" onfocus="return fuZi(this);" value=<%=password%>></td>
<% if(status==1){ %>
<td width='300'><input type="text" class=textStyle readonly="true" onfocus="return fuZi(this);" value=管理員></td>
<% }else{ %>
<td width='300'><input type="text" class=textStyle readonly="true" onfocus="return fuZi(this);" value=使用者></td>
</tr>
<% } } %>
<br></table>
<p> </p>
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
function func11(){
if(document.getElementsByName("text2")[0].value !=""){
document.getElementsByName("text1")[0].value=document.getElementsByName("text2")[0].value;
}else{
alert("nothing")
}
}
function func(){
if(document.getElementsByName("text2")[0].value !=""){
var aa=document.getElementById("table1")
var bb=document.getElementById("table2")
//alert(aa)
//alert(aa.childNodes[0].innerHTML)
//alert(aa.childNodes[0].childNodes[0].innerHTML)
//alert(aa.childNodes[0].childNodes.length)
//alert(aa.childNodes[0].childNodes[0].childNodes.length)
for(var i=0;i<aa.childNodes[0].childNodes[0].childNodes.length;i++){
aa.childNodes[0].childNodes[0].childNodes[i].childNodes[0].value=bb.childNodes[0].childNodes[0].childNodes[i].childNodes[0].value
}
}else{
alert("nothing")
}}
</SCRIPT>
</HEAD><BODY>
<table id="table1">
<tr>
<td><input type="text" name="text1">
</td>
<td><input type="text" name="text1">
</td>
<td><input type="text" name="text1">
</td>
</tr>
</table>
<div>****************************************************</div>
<table id="table2">
<tr>
<td><input type="text" name="text2" onblur="func(this)">
</td>
<td><input type="text" name="text2" onblur="func(this)">
</td>
<td><input type="text" name="text2" onclick="func(this)">
</td>
<td>
</td>
</tr>
</table></BODY>
</HTML>
aa.childNodes[0].childNodes[1].childNodes[1].childNodes[0].value=obj.parentNode.childNodes[1].value;
錯誤為:obj.parentNode.childNodes[1]是null或不是一個物件,但是這一句跟前一句是同一類的句子,前一句沒錯,為什麼這一句錯了
obj.parentNode代表input在的 rd ,td只有childNodes[0]
obj.parentNode.parentNode.parentNode.childNodes[0].childNodes[1].childNodes[1].childNodes[0].value