如何从具有多个值的行中的Html表中获取值

时间:2015-04-17 13:19:46

标签: javascript html

其实我收到服务器的响应,我正在使用javascript显示前视图,如果我想点击每一行我需要捕获值,所以我怎么能这样做。它不会是两个元素呢必须包含100行,它也是一个动态数据行,我现在显示的是两列。

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>

<script type="text/javascript"><!--

function getVal(e) {
    var targ;
    if (!e) var e = window.event;
    if (e.target) targ = e.target;
    else if (e.srcElement) targ = e.srcElement;
    if (targ.nodeType == 3) // defeat Safari bug
        targ = targ.parentNode;

    alert(targ.innerHTML);
}

onload = function() {
    var t = document.getElementById("main").getElementsByTagName("td");
    for ( var i = 0; i < t.length; i++ )
        t[i].onclick = getVal;
}

</script>
<body>
<table id="main"  style="width:29%">

   <tr  style="cursor: pointer;">
    <td>
    <br>
      HJCU4982531&nbsp;
      RD<br>
      L702B2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      <strong style="color:#FF0000">  &gt;&gt; </strong>
      260307<hr>
    </td>
    </tr>  

    <tr  style="cursor: pointer;">
    <td>
    <br>
      MSKU4614240&nbsp;
      LL<br>
      L702E1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      <strong style="color:#FF0000">  &gt;&gt; </strong>
      PM<hr>
    </td>
    </tr>  

</table>
</body>
</html>

当我点击表格行

时,我需要捕获MSKU4614240

2 个答案:

答案 0 :(得分:0)

你说的是表行,但实际上你的表只有一列,所以你可以处理单个td。将每个td的内容包含在id =“MSKU4614240”的标记中,点击后可以检索该值。请注意,这仅适用于您用作标识符的值是唯一的,并且每次显示表时不会在多个单元格中重复。 请注意,这样您只需单击内容即可。如果要单击整个表格单元格,可以将链接设置为

样式
display: block;
width: 100%;
height: 100%;

所以它适合整个细胞。

答案 1 :(得分:0)

根据我的理解,您想从innerHTML中检索该ID

您可以使用以下代码执行此操作(使用以下代码替换警报)

var start = targ.innerHTML.indexOf('<br>') + 4; // +4 so we start from end of <br>
var end = targ.innerHTML.indexOf('&nbsp;');

alert(targ.innerHTML.substring(start, end));
  1. 在ID
  2. 之前搜索<br>
  3. 在ID
  4. 之后搜索&nbsp;
  5. 在2个元素(ID)之间取字符串
  6. 但修复不是很好

    如果你将这个id包装在他自己的HTML元素中,那么代码看起来会更好