首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用增量ids重复html单元

使用增量ids重复html单元
EN

Stack Overflow用户
提问于 2014-05-20 08:39:47
回答 4查看 88关注 0票数 1

我有跟着html的单位。

代码语言:javascript
复制
<div id="unit">
  <div id="***-group-x">****</div>
  <div id="***-group-x">****</div>
  <div id="***-group-x">****</div>
  <input type="hidden" id="***-group-x" />
</div>

我需要重复这个html单元,在一个按钮上点击一个增量id作为下面,

当第一次单击时,***-group-x -> ***-group-1

当第二次点击时,***-group-x -> ***-group-2

我试过像咆哮一样,但不起作用,

代码语言:javascript
复制
var html = $('#unit').html();
newhtml = html .replace('group-x', 'group-3'); 

任何帮助都会很感激的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-05-20 08:46:52

使用模板HTML的一个很好的模式是将它隐藏在一个未知类型的脚本块中:

代码语言:javascript
复制
<script id=unit" type="text/template">
    <div id="***-group-x">****</div>
</script>

这使得维护变得非常容易,因为您所看到的就是您得到的:)

$('#unit').html()访问它

转换任何替换标记(使用regex,如果替换发生不止一次,因为替换只执行第一次匹配),并在新位置插入:

代码语言:javascript
复制
   var html = $('#unit').html().replace('group-x', 'group-' + n);

   $('#targetlocationselector').append(html);

使用这个号码取决于你的使用。

例如,您可能需要计算已经存在的数量,并在此基础上添加一个:

代码语言:javascript
复制
  var n = $('#targetlocationselector').children().length;

要在替换中使用regex,可以传递一个RegExp对象而不是字符串,或者使用regex文本(在本例中是合适的):

代码语言:javascript
复制
  var html = $('#unit').html().replace(/group-x/g, 'group-' + n);
票数 2
EN

Stack Overflow用户

发布于 2014-05-20 08:47:49

您可以在模板中使用正则表达式,比如创建模板。

代码语言:javascript
复制
<div id="element-templates" style="display: none ;">
        <div id="::FIELD1::">****</div>
</div>

并使用类似的脚本代码。

代码语言:javascript
复制
var jFilesContainer = $("#unit");
var jUploadTemplate = $("#element-templates div:first");
var jUpload = jUploadTemplate.clone();
var strNewHTML = jUpload.html();
var intNewFileCount = (jFilesContainer.find("div").length + 1);
strNewHTML = strNewHTML.replace(new RegExp("::FIELD1::", "i"), intNewFileCount)
jFilesContainer.append(jUpload);
票数 1
EN

Stack Overflow用户

发布于 2014-05-20 08:45:52

您可以通过这段代码进行增量,并根据您的需求进行进一步的添加。

代码语言:javascript
复制
var i=0;
$('.unit').each(function(){
    i++;
    var newID='menu'+i;
    $(this).attr('id',newID);
    $(this).val(i);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23754885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档