jquery 选择元素旁边的文本(几乎)

f1tvaqid  于 2023-06-22  发布在  jQuery
关注(0)|答案(2)|浏览(141)

我需要 Package 一个单选按钮和它旁边的文本在一个标签,只是为了更方便用户。
几天前我也遇到过类似的问题,我有一个复选框,并且在我有一个span元素之后立即出现。我可以把这两个元素都包起来。
我有这个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(),我将获得脚本文本。

velaa5lx

velaa5lx1#

$("input[type=radio]").each(function(){
    var text = $(this).next().get(0).nextSibling.nodeValue;
});
lstz6jyr

lstz6jyr2#

Input元素没有文本内容,你有的是rogue textnodes,你需要将它们与input一起定位,然后用label标签 Package 它们:

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

FIDDLE

相关问题