3

次のジレンマがあります。私のHTMLはそれ自体です(これはPL / SQLアプリ内に存在します)。

<table id="search_result_table">
<tr>

<input type=radio name="pv_select" value="'||lv_spriden_id||'"/>
<font face="Calibri" size=3><td id="spriden_id"     name="spriden_id">'||lv_spriden_id||'</td></font>'
<font face="Calibri" size=3><td id="last_name" class="c_last_name"     name="last_name">'||lv_spriden_last_name||'</td></font>
<font face="Calibri" size=3><td id="first_name" class = "c_first_name"     name="first_name">'||lv_spriden_first_name||'</td></font>
</tr>
</table>

選択したラジオボタンの値は、次の方法で取得できます。

$("input[name=pv_select]:checked").val()

ただし、「last_name」列のセル(ラジオボタンの横のテーブル内にある)の値を取得できるようにしたいと思います。jQueryを介して(ラジオボタンを介して選択した行の)この値を取得するにはどうすればよいですか?

私はいくつかのことを試しましたが、どれも機能していません:

$("input[name=pv_select]:checked").parent().siblings("td:eq(1)").text());    

前もって感謝します。

4

3 に答える 3

2

HTML が無効です。それがあなたのDOMツリーを台無しにしているかどうかわからないので、壊れたDOMツリーをトラバースしようとするのでjQueryを混乱させます.

有効な HTML は次のとおりです。

<table id="search_result_table">
    <tr>
        <td>
            <input type=radio name="pv_select" value="'||lv_spriden_id||'"/>
        </td>
        <td id="spriden_id" name="spriden_id"><font face="Calibri" size=3>'||lv_spriden_id||'</font></td>
        <td id="last_name" class="c_last_name" name="last_name"><font face="Calibri" size=3>'||lv_spriden_last_name||'</font></td>
        <td id="first_name" class = "c_first_name" name="first_name"><font face="Calibri" size=3>'||lv_spriden_first_name||'</font></td>
    </tr>
</table>

そして、チェックされたラジオ ボタンと同じ行にある「姓」テーブル セルの値を取得する jQuery:

$("input[name=pv_select]:checked").parent().siblings("td.c_last_name").text());

(HTML は有効だと言います。id属性の値は HTML ページ内で一意であることを意図しているため、表のセルに同じ id 属性を使用する複数の行がある場合、それも無効です。)

于 2010-01-19T20:34:45.470 に答える
0

これはFirefoxで機能しますが、IEでは機能しないことに気づきました。したがって、これが一方のブラウザで失敗し、もう一方のブラウザでは失敗しない原因を分析します。

于 2010-01-19T20:08:32.390 に答える
0

セレクターは、td に入力があり、別の td に姓のテキストがある一般的なテーブル動作ます

おそらくあなたの問題は、送信後に姓が宣言されていることです。そのため、セレクターを次のように変更してみてください。

$("input[name=pv_select]:checked").parent().siblings("td:eq(0)").text();

ここで、兄弟のインデックスを変更しました(テーブルダンプが正しい場合、.siblings( "td:eq(1)")は名、eq(0)は姓でなければなりません

ただの提案..

編集

HTML の抜粋を投稿したとき、ラジオの親の兄弟要素をチェックする必要がないことに気付きました。その親はtrであり、テーブル内のtrの兄弟は単なる別のテーブル行です。

あなたが考えるかもしれないのは、DOMの次の要素に移動するトラバース関数. next()を使用することです

FF でこれを十分にテストできないのは悲しいことです (または単に Firebug / jquery ext. のためです)。

$('input[name="pv_select"]:checked').next();

唯一の問題は、次の要素がフォント要素であり、FF で適切にレンダリングできないように見える (そして、テーブルの行に存在しない - FireBug インスペクターの本文内に直接表示される) ため、 .children()が見つからないことです。またはあなたが見つけようとしているものは何でも

于 2010-01-19T17:18:59.193 に答える