0

我的 html 中有多个 div,需要在 div 和 p 之间添加一个元素

<div class="ui-state-error ui-corner-all">
 <p><b>Reversed</b></p>
</div>

我想要的是在两者之间添加跨度的html

<div class="ui-state-error ui-corner-all">
<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>
 <p><b>Reversed</b></p>
</div>

但是我尝试过的函数无法为每个类执行一次,如果有 13 个类,则该函数在 13 个类中的每一个上放置 13 个 s,无论我只是使用选择器还是 each(),insertBefore( )、之前()、之后()等

这是我尝试过但没有奏效的方法

 <script type="text/javascript">        
       $(function () {                 
html = '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>';

           $('.ui-state-error').each(function(i){
                $('.ui-state-error').eq(i).before('p').append(html);
            });
        });
    </script>
4

3 回答 3

3

尝试这样做:

$(document).ready(function(){
    html = '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>';
    $('.ui-state-error').prepend(html);
});

这是关于prepend的文档

于 2012-07-27T15:01:47.200 回答
1

试试这个,

现场演示

     $(function () {                 
html = '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;">your span</span>';

           $('.ui-state-error').each(function(i){
                $(this).prepend(html);           
            });

        });​
于 2012-07-27T15:01:46.660 回答
1

这可能对您有用:

$(function(){ html = '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>'; $(html).prependTo('.ui-state-error'); });

我的回答与 PoulsQ 的类似。但不同的是 $.prepend() 仅适用于一个匹配的元素(我认为这是第一个匹配的元素),而 $.prependTo() 是前置所有匹配的元素。此规则也适用于 append() 和 appendTo();before() 和 insertBefore(); 之后()和插入之后();

希望这会有所帮助。

于 2012-07-27T15:23:14.393 回答