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は、クリックイベントから選択した各行から取得する必要のある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の非表示のテキストボックスに送信する場合は、行から値を取得してから、複数の行から値を取得する必要があります。最初に1つのテキストボックスを使用しているだけで、それは機能しました。

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

私はこれを間違った方法で行っていますか?各行から必要な値は1つだけなので、これをコーディングするためのより良い方法があると思いますが、tdのn(値)も考慮する必要があります。

これどうやってするの?

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>​

Jクエリ

$(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 に答える