Javascript 选择元素旁边的文本(几乎)
我需要包装一个单选按钮和它旁边的文本在一个标签,只是为了更方便用户 几天前我遇到了一个类似的问题,我有一个复选框,在我有了一个span元素之后。我可以包装这两种元素 我有这个HTML:Javascript 选择元素旁边的文本(几乎),javascript,jquery,jquery-selectors,label,next,Javascript,Jquery,Jquery Selectors,Label,Next,我需要包装一个单选按钮和它旁边的文本在一个标签,只是为了更方便用户 几天前我遇到了一个类似的问题,我有一个复选框,在我有了一个span元素之后。我可以包装这两种元素 我有这个HTML: <span class="Attribute"> <input type="radio" name="vMONHRDREM" value="S"> <script type="text/javascript">gx.dom.setAttribute("vMONH
<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>
但它不起作用。它不会返回任何东西。如果我更改为$this.next.text,我将获得脚本文本。输入元素没有文本内容,您拥有的是rogue textnodes,您需要将它们与输入一起定位,然后用标签标记将它们包装起来:
$("input[type=radio]").each(function(){
var text = $(this).next().get(0).nextSibling.nodeValue;
});
$('.Attribute input[type="radio"]').each(function() {
$(this).addBack()
.add($(this).next('script')[0].nextSibling)
.wrapAll('<label></label>');
});
伟大的这让我看到了价值观。但是如何包装这两个元素呢?如果我使用…nextSibling.wrap。它甚至只包装文本节点。
$('.Attribute input[type="radio"]').each(function() {
$(this).addBack()
.add($(this).next('script')[0].nextSibling)
.wrapAll('<label></label>');
});