然后找到将类和文本替换为按钮

时间:2015-08-22 15:21:44

标签: javascript jquery html replace addclass

鉴于脚本从.label (text1或任何文本)中找到文本,然后将类class="text1"添加到父列表{{1}像这样:<li>

Jquery的:

<li class="text1">

HTML:

$('.label a').each(function() {
  $(this).closest('li').addClass($(this).text());
});

通过此脚本我们得到结果:

<div id="main-id">

<button class="one"></button>  
    <button class="two"></button>  

<ul>

<li> <!--List 1-->
<span class="meta">
<div class="label">
<a href="http://lorem.com">text1</a> <!--This text-->
</div>
</span>
</li>

<li> <!--List 2-->
<span class="meta">
<div class="label">
<a href="http://lorem.com">text2</a> <!--This text-->
</div>
</span>
</li>

</ul>
</div>

请参阅示例Fiddle&gt;

现在关注我的问题我正在尝试将类和文本替换为按钮,有两个按钮,如<ul> <li class="text1"> <!--Got New class to List 1--> <span class="meta"> <div class="label"> <a href="http://lorem.com">text1</a> </div> </span> </li> <li class="text2"> <!--Got New class List 2--> <span class="meta"> <div class="label"> <a href="http://lorem.com">text2</a> </div> </span> </li> </ul> <button class="one"></button>,现在要放置类/文本按钮内的<button class="two"></button>(或任何类) 比如:.text1
<button class="one text1">text1</li></button>由上面给出的相同的jquery。

我已尝试过此替换文字script,但我无法做到这一点。有关其他方式的建议吗? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

不确定您的目的是什么,但您可以尝试这样的事情。

<html>
<body>

    <div id="main-id">
        <button class="one"></button>  
        <button class="two"></button>  

        <ul id="main-list">
            <li>
                <span class="meta">
                    <div class="label">
                        <a href="http://lorem.com">text1</a>
                    </div>
                </span>
            </li>
            <li>
                <span class="meta">
                    <div class="label">
                        <a href="http://lorem.com">text2</a>
                    </div>
                </span>
            </li>
        </ul>

    </div>

<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
$(function(){

    var btns = ['.one', '.two'];

    $('#main-list li').each(function(k,el){
        // use clone if you don't want to remove original dom element
        var $li = $(el).clone(); 
        var className = $li.find('a').text();

        $li.addClass(className)
            .empty()
            .text(className);

        var $btn = $(btns[k]);
        $btn.append($li);
    });
});
</script>
</body>
</html>