你可以在这里使用更多的 jQuery,但我保持它和你的几乎一样,只添加足够做你想做的事。
请注意,这将计算#allDivs 中的所有div 元素。如果有一些您不想计算,则必须采用另一种方法。
$(document.ready(function() {
$('#myButton').click(function() { // On page load, assign click event handler to your button
var nrDivs = $('div', '#allDivs').length + 1; // Retrieve all 'div' elements within '#allDivs', and get its length plus 1
var neuDiv = document.createElement("div");
neuDiv.setAttribute("Id","theDiv" + nrDivs);
neuDiv.innerHTML = "Text";
$('#allDivs').append(neuDiv);
newfeed.draw(neuDiv);
});
});
编辑:
更类似于 jQuery 的方式:
$(document.ready(function() {
$('#myButton').click(function() { // On page load, assign click event handler to your button
var nrDivs = $('div', '#allDivs').length + 1; // Retrieve all 'div' elements within '#allDivs', and get its length plus 1
var $neuDiv = $('<div>').attr('id','theDiv' + nrDivs)
.text("Text")
.appendTo('#allDivs');
newfeed.draw(neuDiv);
});
});
编辑:
jQuery 中的选择器非常强大并且提供了很大的灵活性。
例如,上面获取#allDivs 下所有div 元素的行可以重写为:
$('#allDivs div').length + 1;
...完全一样。
如果您只想获取作为#allDivs 直接子级的div 元素,请使用:
$('#allDivs > div').length + 1;
或
$('#allDivs').children('div').length + 1;
另一种选择是为这些div 元素提供一个特殊的类,您可以将其用作选择器。因此,例如,当您创建一个新的 div 以添加到 #allDivs 时,请这样做:
var $neuDiv = $('<div>').attr('id','theDiv' + nrDivs)
.addClass('topDiv')
.text("Text")
.appendTo('#allDivs');
现在,#allDivs 中的顶部 div 元素将有一个名为 `topDiv' 的类,您可以像这样在选择器中引用它:
$('#allDivs .topDiv').length + 1;
...只会返回具有topDiv 类的div 元素。
这只是触及了您可以在 jQuery 中使用选择器所做的事情的皮毛。
希望这会有所帮助。