0

我正在尝试使用 Jquery 克隆一个div,然后更改它的一个孩子的 id 并在另一个元素之后添加:

var s = $('#runwell1').clone().wrap('<div>');
s.find('#tag' + runNum).attr('id', 'tag' + (++runNum));
$('#addrun').before(s.parent().html());

但这段代码不起作用。它有什么问题?如何使用 id 克隆?

编辑这里是 div 的 html:

<div class="well well-large RunWell" id="#runwell1">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>

    <!-- Form Name -->
    <legend>Run 1</legend>

    <!-- Multiple Radios -->
    <div class="control-group">
        <label class="control-label" for="radios">System :</label>
        <div class="controls">
            <label class="radio" for="radios-0">
                <input type="radio" name="radios" id="radios-0" value="op" checked="checked">
                OPE
            </label>
            <label class="radio" for="radios-1">
                <input type="radio" name="radios" id="radios-1" value="mxwl">
                Maxwell
            </label>
        </div>
    </div>

    <!-- Textarea -->
    <div class="control-group">
        <label class="control-label" for="textarea">Tools :</label>
        <div class="controls">
            <input type="text" class="tags" id="tag1" value="Amsterdam,Washington,Sydney,Beijing" data-role="tagsinput" />
        </div>
        </br>
        <div class="SystemFiles" data-role="collapsible">
            <!-- File Button -->
            <div class="control-group">
                <label class="control-label" for="filebutton">OP  DLIS </label>
                <div class="controls">
                    <input id="filebutton" name="filebutton" class="input-file" type="file">
                </div>
            </div>
        </div>
4

3 回答 3

2

#的id里有..

id="#runwell1" <---here

<div class="well well-large RunWell" id="#runwell1">
                          //-------------^----here

删除#标签中的那个

并且您的 id 选择器将起作用..

于 2013-10-07T19:44:45.973 回答
2

您还需要更改 div.clone()以避免双重 ID

尝试这个:

var runNum = 1;
var s = $('#runwell' + runNum)
    .clone()
    .attr('id', '#runwell' + (++runNum))
    .wrap('<div>');

s.find('#tag' + runNum).attr('id', 'tag' + (++runNum));
$('#addrun').before(s);

演示在这里

于 2013-10-07T19:03:33.317 回答
0
var s = $('#runwell1').clone().wrap('<div>');

s将引用选择器中的内容 WHEN IT WAS RUN。它不会包含在 DOM 中被操纵的内容。

于 2013-10-07T19:00:49.147 回答