Javascript 将一个动态创建的元素附加到另一个元素
我有以下基于原型的代码:Javascript 将一个动态创建的元素附加到另一个元素,javascript,jquery,prototypejs,Javascript,Jquery,Prototypejs,我有以下基于原型的代码: for (j = 0; j < Math.floor(len / 2); ++j) { var tr = $('tr'); var id1 = id[1] + (j * 2); var id2 = id[1] + (j * 2 + 1); // need to change the bits below here I believe tr.appendChild(id1.createCheckbox()); tr.a
for (j = 0; j < Math.floor(len / 2); ++j) {
var tr = $('tr');
var id1 = id[1] + (j * 2);
var id2 = id[1] + (j * 2 + 1);
// need to change the bits below here I believe
tr.appendChild(id1.createCheckbox());
tr.appendChild(id1.createButton());
tr.appendChild(id2.createCheckbox());
tr.appendChild(id2.createButton());
t[i].appendChild(tr);
}
for(j=0;j
这是基于原型的代码,用于将另一个函数的结果附加到我的新
元素中。索引[i]
来自一个for循环,它封装了这个for循环,并且工作正常
我的问题是,如何将其转换为jQuery?基本上,我想做与此相反的事情
在任何人建议只动态创建一个新的按钮元素之前,createButton()
和createCheckbox()
是创建和格式化特殊按钮的基本函数,也可以正常工作
干杯偷窥不确定你到底想要什么,可能是这样:
for (j = 0; j < Math.floor(len / 2); ++j) {
var tr = $('<tr></tr>');
var id1 = id[1] + (j * 2);
var id2 = id[1] + (j * 2 + 1);
// need to change the bits below here I believe
tr.append(id1.createCheckbox());
tr.append(id1.createButton());
tr.append(id2.createCheckbox());
tr.append(id2.createButton());
$(t[i]).append(tr);
}
for(j=0;j
尝试document.createElement('tr')代码>取而代之。它应该与使用JavaScript DOM操作的其余代码一起工作。如果您希望切换到jQueryDOM操作,请使用MamaWalter的方法
首先,再次检查此代码。现在,它在循环的每个迭代中使用相同的元素(标识符为“tr”)进行操作。真奇怪
查找方法createCheckbox()
和createButton()
,它们可能看起来像
Number.prototype.createCheckbox = function() {
return new Element('input', {type: 'checkbox', value: 'cb' + this});
}
并将其转换为函数。转换后,他们应该接受数字(或者如果id[]
是字符串数组,则可能是字符串)作为参数,并返回带有已创建复选框/按钮的jQuery集合:
function createCheckbox(id) {
return $('<input type="checkbox" value="cb' + id + '">');
}
函数createCheckbox(id){
返回美元(“”);
}
将代码转换为
for (j = 0; j < Math.floor(len / 2); ++j) {
var $tr = $('#tr'); // get element with id="tr"
var id1 = id[1] + (j * 2);
var id2 = id[1] + (j * 2 + 1);
$tr.append(createCheckbox(id1));
$tr.append(createButton(id1));
$tr.append(createCheckbox(id2));
$tr.append(createButton(id2));
$tr.appendTo(t[i]); // note that t[i] is element, not a jQuery collection
}
for(j=0;j
您必须更具体一点,我正在将一些代码从prototype转换为jQuery,并找到了这个片段。我相信tr.appendChild(id1.createCheckbox());如果要附加一个使用createCheckbox()函数创建的新复选框,则此产品将作为“tr”的子元素附加。它在prototype中工作,但在jQuery中不工作,我需要转换它,但不确定如何转换。抱歉,没有解决,我认为我没有解释它,我应该在prototype中使用$('tr')
,JS返回id=“tr”@Victor的DOM元素-谢谢。。。我不知道prototypeJS会这么做。不过,基于代码,我认为OP正在尝试创建新元素。新元素创建看起来像newelement('tr')