首页 > jquery怎么操作由js生成的标签?

jquery怎么操作由js生成的标签?

我用sweetalert.min.js(弹出框插件)生成了一个弹出框,生成的中间部分代码

<p style="display: block;">
    <div class="myouhui">
        <ul>
            <li><span>不参加促销优惠</span><span><input name="aoao" type="radio" id="checkbox-3-12"><label for="checkbox-3-12"></label></span></li>
            <li><span>满200元减20</span><span><input type="radio" name="aoao" id="checkbox-3-15"><label for="checkbox-3-15"></label></span></li>
            <li><span>满300元减15</span><span><input type="radio" name="aoao" id="checkbox-3-16"><label for="checkbox-3-16"></label></span></li>
        </ul>
    </div>
</p>


我想现在用jquery来操作生成的这段代码的样式,如鼠标点击某个li会加一个边框,如下:

问题是,这个弹出框本来就是由js生成的,我直接用jquery去操作样式不起作用。谁遇到过这问题呀?


使用on事件


动态插入的用on事件


$(document).on('click', '你要操作的标签名或class', function() {
    //
});

用On可以在未生成的Dom上绑定事件


说下知识点,对动态添加的元素(未来元素)绑定事件需要通过事件代理来处理,jquery新版本的事件代理用on方法,原声js的话自己也可以实现事件代理,就是绑定事件在现有的元素里,通过事件冒泡来处理事件。


$('<div><ul><li></li><li></li><li></li></ul></div>').find("li").on("click", function(){});

早上好.

$(document).on('click', '.myouhui li', function() {
      // $(this)指向的就是li
      // 处理li
});

$('.myouhui').on('click', 'li', function() {
      $(this).css('border','1px solid #f00')
});
【热门文章】
【热门文章】