繁体   English   中英

如何将 ul 和 li 转换为 select 和选项并保留课程?

[英]How can I convert a ul and li to select and options and keep the classes?

我想将带有类的 ul 和 li 转换为 select 和具有相同类的选项。

如果在控制台中我手动替换元素,则功能正常。

但是我找不到在 document.ready 上替换它的方法。 我尝试了 the.replaceWith 但这不会保留相同的类并且它不起作用。 有什么建议么?

<div class="convert_to_select">
    <ul class="my_filter_checkbox">
        <li>
            <label class="filter_checkbox_container">test1
                <input class="my-more-filter-vals" data-mfilterkey="testfilter" data-mfilterval="t1" type="checkbox" value="v1" name="my_extrafields_select[]">
                <span class="filter_checkbox_checkmark"></span>
            </label>
        </li>                                       
        <li>
            <label class="filter_checkbox_container">test2
                <input class="my-more-filter-vals" data-mfilterkey="testfilter" data-mfilterval="t2" type="checkbox" value="v2" name="my_extrafields_select[]">
                <span class="filter_checkbox_checkmark"></span>
            </label>
        </li>
    </ul>
</div>

我试过了

$(".convert_to_select ul").replaceWith(function() {
 return "<select>" + this.innerHTML + "</select>"; 
});
$(".convert_to_select li").replaceWith(function() {
 return "<option>" + this.innerHTML + "</option>"; 
});

不是最好的解决方案,但它有效。

您可以升级它以保持课程或做任何您想做的事情。

更新:

如果有多个“div.convert_to_select”或只有多个“ul”怎么办?

 $(document).ready(function(){ var DivCount = $(".convert_to_select").length; var a = []; for (var i = 0; i < DivCount; i++){ $(".convert_to_select:eq("+i+") li").each(function(){ var x = $(this).text(); a.push(x); }); $(".convert_to_select:eq("+i+")").html("").append("<select class='finalResult_"+i+"'></select>"); appendData(i) } function appendData(num){ for(var i = 0; i < a.length; i++){ $(".finalResult_"+num).append("<option value='"+a[i]+"'>"+a[i]+"</option>"); } a = []; } });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="convert_to_select"> <ul class="my_filter_checkbox"> <li> <label class="filter_checkbox_container">test1 <input class="my-more-filter-vals" data-mfilterkey="testfilter" data-mfilterval="t1" type="checkbox" value="v1" name="my_extrafields_select[]"> <span class="filter_checkbox_checkmark"></span> </label> </li> <li> <label class="filter_checkbox_container">test2 <input class="my-more-filter-vals" data-mfilterkey="testfilter" data-mfilterval="t2" type="checkbox" value="v2" name="my_extrafields_select[]"> <span class="filter_checkbox_checkmark"></span> </label> </li> </ul> </div> <br><br> <div class="convert_to_select"> <ul class="my_filter_checkbox"> <li> <label class="filter_checkbox_container">another one <input class="my-more-filter-vals" data-mfilterkey="testfilter" data-mfilterval="t1" type="checkbox" value="v1" name="my_extrafields_select[]"> <span class="filter_checkbox_checkmark"></span> </label> </li> <li> <label class="filter_checkbox_container">another one 2 <input class="my-more-filter-vals" data-mfilterkey="testfilter" data-mfilterval="t2" type="checkbox" value="v2" name="my_extrafields_select[]"> <span class="filter_checkbox_checkmark"></span> </label> </li> <li> <label class="filter_checkbox_container">another one 3 <input class="my-more-filter-vals" data-mfilterkey="testfilter" data-mfilterval="t2" type="checkbox" value="v2" name="my_extrafields_select[]"> <span class="filter_checkbox_checkmark"></span> </label> </li> </ul> </div> <br><br> <div class="convert_to_select"> <ul class="my_filter_checkbox"> <li> <label class="filter_checkbox_container">just 4 test <input class="my-more-filter-vals" data-mfilterkey="testfilter" data-mfilterval="t1" type="checkbox" value="v1" name="my_extrafields_select[]"> <span class="filter_checkbox_checkmark"></span> </label> </li> <li> <label class="filter_checkbox_container">just 4 test 2 <input class="my-more-filter-vals" data-mfilterkey="testfilter" data-mfilterval="t2" type="checkbox" value="v2" name="my_extrafields_select[]"> <span class="filter_checkbox_checkmark"></span> </label> </li> <li> <label class="filter_checkbox_container">just 4 test 3 <input class="my-more-filter-vals" data-mfilterkey="testfilter" data-mfilterval="t2" type="checkbox" value="v2" name="my_extrafields_select[]"> <span class="filter_checkbox_checkmark"></span> </label> </li> <li> <label class="filter_checkbox_container">just 4 test 4 <input class="my-more-filter-vals" data-mfilterkey="testfilter" data-mfilterval="t2" type="checkbox" value="v2" name="my_extrafields_select[]"> <span class="filter_checkbox_checkmark"></span> </label> </li> </ul> </div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM