Javascript 重复的id,使用jquery的名称
我有HTML代码,我想多次克隆这些字段,用不同id的标记元素,怎么办?我试图克隆,但无法更改id。我的HTML代码为Javascript 重复的id,使用jquery的名称,javascript,jquery,html,Javascript,Jquery,Html,我有HTML代码,我想多次克隆这些字段,用不同id的标记元素,怎么办?我试图克隆,但无法更改id。我的HTML代码为 <div class="adlthd">Number of Adults & child</div> <div id='formrepeat' class="ratediv"> <div class="Paxtbl" id="Paxtblid"> <p></p><P&g
<div class="adlthd">Number of Adults & child</div>
<div id='formrepeat' class="ratediv">
<div class="Paxtbl" id="Paxtblid">
<p></p><P>1</P><P>2</P><P>3</P><P>4</P><P>5</P><P>6</P><P>7</P><P>8</P><P>9</P>
<div class="clear" id="snRates">
<P>Season 1</P>
<P><input type="text" class="inb4 itx validate[required,custom[number]]" name="1adult" id="1adultn1" onchange="convertToFloat(this)"></P>
<P><input type="text" class="inb4 itx validate[required,custom[number]]" name="2adult" id="1adultn2" onchange="convertToFloat(this)"></P>
<P><input type="text" class="inb4 itx validate[required,custom[number]]" name="3adult" id="1adultn3" onchange="convertToFloat(this)"></P>
</div>
</div>
</div>`
成人和儿童人数
123456789
第一季
`
我的JavaScript是
<script type="text/javascript">
$(document).ready(function() {
$('#mybutton').change(function(){
var total = $(this).val();
var newNum = new Number(total + 1);
div_rate =$('.ratediv').length;
if(div_rate>total)
{
for(div_rate; total<div_rate;div_rate--)
{
$('#Paxtblid').remove();
}
}else{
for(div_rate;div_rate<total;div_rate++)
{
$('#Paxtblid').clone().appendTo('#formrepeat');
}
}
});
});
</script>
$(文档).ready(函数(){
$('#mybutton')。更改(函数(){
var total=$(this.val();
var newNum=新编号(总数+1);
div_rate=$('.ratediv').length;
如果(股息率>总额)
{
对于(div_rate;total如何将所需的div
克隆到另一个隐藏的div
,然后从那里操作id
,并附加到所需的位置
<div id="form1"></div>
您可以根据需要更改id
这是您的地址。
这就是我所能想到的,我无法得到一个直接的解决方案。不过可能还有其他的可能性
好的,我得到了一个更好的解决方案。您可以使用,从而消除了上述解决方案中提到的隐藏div的必要性:
var number = 1 + Math.floor(Math.random() * 6);
$('#Paxtblid').clone().appendTo('#formrepeat');
$('#formrepeat .Paxtbl:last').find("input").each(function() {
var randnumber=number++;
var id="1adult"+randnumber;
$(this).attr("id",id);
});
这是.$('#Paxtblid').clone().appendTo('#formrepeat');
这里没有尝试更改is。您是否尝试过类似于$('#Paxtblid').clone().attr('id',Paxtblid#u clone'+div rate.)的方法;
?@GolezTrol是的,我试过了,但它并没有改变标签的id。我只需要改变标签的id。像1 Dult1 1 Dult2,1 Dult3当我克隆时,id应该像1 Dult11或smthng;请注意id不能以数字开头,所以1 Dult1
是无效的id(css选择器不能基于这样一个无效的id设置样式)。尽管javascript和jQuery仍然可以选择它。@KingKing:请看它的说明:“以前的HTML版本对id值的内容有更大的限制(例如,它们不允许id值以数字开头)”.HTML5允许ID以数字开头。@ABHITALK对此不确定,我指的是CSS3的工作,而不是HTML5。好的,我找到了一个更好的解决方案。
var number = 1 + Math.floor(Math.random() * 6);
$('#Paxtblid').clone().appendTo('#formrepeat');
$('#formrepeat .Paxtbl:last').find("input").each(function() {
var randnumber=number++;
var id="1adult"+randnumber;
$(this).attr("id",id);
});