2012-11-06 76 views
0

我已经在html和JavaScript中完成了一些代码......我的查询是当我点击<td>时,无论与其相关的值是什么,都必须显示在相应的文本框中。 .. 在<td>前面我已经采取了文本框......因为我已经采取了3 <td>和3文本框如何获得文本框中的​​值

 <script type="text/javascript"> 
     function click3(x) { 
     x = document.getElementById("name").innerHTML 
     var a = document.getElementById("txt"); 
     a.value = x; 
     } 
     function click1(y) { 
     y = document.getElementById("addr").innerHTML 
     var b = document.getElementById("txt1"); 
     b.value = y; 
     } 
     function click2(z) { 
     z = document.getElementById("email").innerHTML 
     var c = document.getElementById("txt2"); 
     c.value = z; 
     } 
     </script> 

这是我的JavaScript代码的例子,我知道这是不是一个适当的方式处理这样的问题,因为它给静态的方式来处理这个问题 没有人有这个问题更好的解决方案?? 在JavaScript/jQuery

+5

向我们提供您的html结构 – amd

回答

1

如果click1,click2和click3应该是三个事件,那么您必须保留所有三个函数,您可以缩短脚本代码以将值分配给文本字段。

<script type="text/javascript"> 
    function click3(x) { 
     document.getElementById("txt").value = document.getElementById("name").innerHTML; 
    } 
    function click1(y) { 
    document.getElementById("txt1").value = document.getElementById("addr").innerHTML; 
    } 
    function click2(z) { 
    document.getElementById("txt2").value = document.getElementById("email").innerHTML; 
    } 
    </script> 

你可以做一个单一的功能,如果你有一个click事件,缩短这样分配的代码,

function SomeClick(x) { 
    document.getElementById("txt").value = document.getElementById("name").innerHTML; 
    document.getElementById("txt1").value = document.getElementById("addr").innerHTML; 
    document.getElementById("txt2").value = document.getElementById("email").innerHTML;  
} 
+0

单击应该设置所有3个值?这听起来不像问题所描述的那样。 –

+0

你是对的我已经更新了我的答案。感谢您告诉。 – Adil

+0

好吧..看起来好像你误会了我的问题......在添加你的代码后我遇到了这个问题,当我点击一个​​它给了我所有的值​​......我不想那样.. ..它必须在特定的点击.... –

1

据我理解你的问题,你可以尝试以下,假设这是你的HTML是如何构成的:

HTML标记

<table id="mytable"> 
    <tr> 
    <th>Name</th> 
    <th>Address</th> 
    <th>Email</th> 
    </tr> 
    <tr> 
    <td class="name">Tom</td> 
    <td class="addr">789</td> 
    <td class="email">[email protected]</td> 
    </tr> 
    <tr> 
    <td class="name">Dick</td> 
    <td class="addr">456</td> 
    <td class="email">[email protected]</td> 
    </tr> 
    <tr> 
    <td class="name">Harry</td> 
    <td class="addr">123</td> 
    <td class="email">[email protected]</td> 
    </tr> 
</table> 

<input id="txt1" type="text" /> 
<input id="txt2" type="text" /> 
<input id="txt3" type="text" />​ 

jQuery的

$(".name").click(function(){ 
    $("#txt1").val($(this).text()); 
    $("#txt2").val($(this).nextAll().eq(0).text()); 
    $("#txt3").val($(this).nextAll().eq(1).text()); 
});​ 

$(".addr").click(function(){ 
    $("#txt2").val($(this).text()); 
    $("#txt1").val($(this).prevAll().eq(0).text()); 
    $("#txt3").val($(this).nextAll().eq(0).text()); 
}); 

$(".email").click(function(){ 
    $("#txt3").val($(this).text()); 
    $("#txt2").val($(this).prevAll().eq(0).text()); 
    $("#txt1").val($(this).prevAll().eq(1).text()); 
}); 

DEMOhttp://jsfiddle.net/Z9weS/

+1

jQuery的+1! – Phorce

0

您可以将列和行。每个小区由ID你给它的列标题和

多个系列的可能是行和列的行组合的指数就可以读取特定事件给

地址为每个表格单元格值的编号

然后你知道拉单元格值。

$('tr') 
     .click(function() { 
     ROW = $(this) 
      .attr('id'); 
     $('#display_Colume_Raw') 
      .html(COLUME + ROW); 

     $('#input' + COLUME + ROW) 
      .show(); 
     STATUS = $("#input" + COLUME + ROW) 
      .val(); 
    }); 
相关问题