0

我正在使用 jQuery 1.6.4,并且我有一组从 html 表中获取的值。我要做的是在用户单击该行时从特定的 td 获取值。我使用此代码从特定行获取所有 td 值:

jsp代码:

<tr>
<s:iterator value="model.NameList">
<tr>
   <td align=center><s:property value="message.substring(0,125)"/></td>
   <td align=center><s:property value="timestamp"/></td>
   <td align=center><s:property value="retryCount"/></td>
   <td align=center><s:property value="specialId"/></td>
...
   </tr>
  </s:iterator> ...

specialId 是我需要从 click 事件的每个选定行中获取的 td 单元格值。

//点击事件代码省略。

var arr = [];
arr = $(this).find('td').map(function(){     
return this.innerHTML;   
}).get();  

然后,当我循环遍历该行中的单元格时,我需要使用 if 块检查特定单元格的值。我在下面的代码中对其进行了硬编码以获取值,但我需要动态地执行此操作。

$.each(arr, function(i, l){ 
    if(i == 6) { ...

所以我为 td 单元格创建了一个 id 来获取该值,但我需要从多行中获取这个特定的单元格值,因此 id 本身将不起作用。如果用户选择多行并将该值发送到 Struts2 隐藏文本框,我需要处理从行中获取值,然后从多行中获取它。我只是使用一个文本框开始并且有效。

$('#textboxId').val(l); //Set the value to the id of a hidden textbox.

我会以错误的方式解决这个问题吗?由于我只需要每一行中的一个值,我认为有一种更好的编码方式,但我还需要允许 td 的 n(values)。

我怎样才能做到这一点?

4

2 回答 2

2

parent()您可以使用jquery方法根据用户的点击查找父TD 。

这是一个工作演示

这是我正在使用的示例 HTML:

<table>
    <tr>
        <td><span>Foo</span></td>
    </tr>
    <tr>
        <td><span>Bar</span></td>
    </tr>
</table>​

这是使用 1.6.4 的 Jquery 代码。

$(document).ready(function(){
    $('span').bind('click',function(){
        var newVal = '<b>You clicked</b>';
        $(this).parent('td').html(newVal);
    });
});​

它不完全清楚你在你的问题中问什么,所以我可能弄错了。如果是这样,请为我们创建一个 jsfiddle 以更好地了解您的问题。

编辑

在对您的问题进行编辑之后,这就是您要查找的内容:

示例 HTML

<table>
    <tr>
        <td>Property</td>
        <td>Timestamp</td>
        <td>RetryCount</td>
        <td>SpecialID</td>
    </tr>    
</table>​

jQuery

$(document).ready(function(){
    $('tr').bind('click',function(){
       alert($(this).children('td').last().text());
    });
});​

现场演示

解释

您首先将单击处理程序附加到,tr以便用户可以单击行上的任意位置。单击处理程序查找单击的所有td元素tr(即子元素)。在它找到的所有孩子中,你告诉它提醒最后一个孩子的文本(这就是.last()方法所做的)。

于 2012-05-30T16:20:35.090 回答
1

单击行时,您可以使用以下方法获取值:

jQuery('table tr').click(function(){
   jQuery('#hiddenInputText').val('jQuery(this).find('#thisone').text()'); 
   //thisone is the id of the id whose value should be fetched
});​

说你的文本字段是否像

<s:inputText id="hiddenInputText" />

JS小提琴

于 2012-05-30T16:21:19.573 回答