相关疑难解决方法(0)

在jQuery中更改克隆输入元素的名称attr在IE6/7中不起作用

这个SSCCE说明了一切:

<!doctype html>
<html lang="en">
    <head>
        <title>Test</title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $('#add').click(function() {
                    var ul = $('#ul');
                    var liclone = ul.find('li:last').clone(true);
                    var input = liclone.find('input');
                    input.attr('name', input.attr('name').replace(/(foo\[)(\d+)(\])/, function(f, p1, p2, p3) {
                        return p1 + (parseInt(p2) + 1) + p3;
                    }));
                    liclone.appendTo(ul);
                    $('#showsource').text(ul.html());
                });
            });
        </script>
    </head>
    <body>
        <ul id="ul">
            <li><input type="text" name="foo[0]"></li>
        </ul>
        <button id="add">Add</button>
        <pre id="showsource"></pre>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Copy'n'paste'n'run它,点击Add几次按钮.在每次点击时,您都应该看到<ul>要显示的HTML代码,<pre id="showsource">预期代码大致应该是:

<li><input name="foo[0]" type="text"></li>
<li><input name="foo[1]" type="text"></li>
<li><input …
Run Code Online (Sandbox Code Playgroud)

jquery clone internet-explorer-7 internet-explorer-6

23
推荐指数
2
解决办法
1万
查看次数