0

ユーザーフレンドリーにするために、ラジオ ボタンとその横のテキストをラベルでラップする必要があります。

数日前、チェックボックスがあり、スパン要素があった直後に同様の問題がありました。そして、両方の要素をラップすることができました。

私はこのHTMLを持っています:

<span class="Attribute">
    <input type="radio" name="vMONHRDREM" value="S">
    <script type="text/javascript">gx.dom.setAttribute("vMONHRDREM","gxoch0","if(!(gx.evt.jsEvent(this))) return false;");</script>
    Ativado

    <input type="radio" name="vMONHRDREM" value="N">
    <script type="text/javascript">gx.dom.setAttribute("vMONHRDREM","gxoch0","if(!(gx.evt.jsEvent(this))) return false;");</script>
    Desativado
</span>

残念ながら、ページを生成するツールを使用しているため、HTML 構造を変更することはできません。

私はこのようなことをしようとしています:

$("input[type=radio]").each(function(){
    alert($(this).next().next().text());
});

しかし、それは機能していません。何も返しません。に変更する$(this).next().text()と、スクリプト テキストが表示されます。

4

2 に答える 2

5
$("input[type=radio]").each(function(){
    var text = $(this).next().get(0).nextSibling.nodeValue;
});
于 2013-04-10T13:20:12.043 に答える
2

入力要素にはテキスト コンテンツがありません。あなたが持っているのは不正なテキスト ノードです。これらを入力と一緒にターゲットにしてから、ラベル タグでラップする必要があります。

$('.Attribute input[type="radio"]').each(function() {
    $(this).addBack()
           .add($(this).next('script')[0].nextSibling)
           .wrapAll('<label></label>');
});

フィドル

于 2013-04-10T13:21:59.540 に答える