Javascript JQuery:如何遍历div的所有子元素

Javascript JQuery:如何遍历div的所有子元素,javascript,jquery,Javascript,Jquery,我试图循环给定div中的所有元素,并将结果(稍后将使用C代码)输出到屏幕进行测试 如果我有这样的html: <div id="testDiv"> <test> <a>aVal</a> <c> <cc>ccVal</cc> </c> </test>

我试图循环给定div中的所有元素,并将结果(稍后将使用C代码)输出到屏幕进行测试

如果我有这样的html:

    <div id="testDiv">
        <test>
            <a>aVal</a>
            <c>
                <cc>ccVal</cc>
            </c>
       </test>
    </div>
现在我已经准备好了这个jquery,但我不确定如何深入到其他节点:

var x = "HtmlElement.";
$('div#testDiv').children().each(function () {    
    var nodeNameStr = this.nodeName.toLowerCase();
    var nodeText = $(this).text();
    x += "CreateNode(nodeNameStr).addText(nodeText)"
});

您正在循环通过您部门的直接子级,而不是所有子级。为此,请使用以下代码:

$('div#testDiv *').each(function(){
    // Your Code
});


这里有一个比前面的答案更完整的例子:


可以通过以下方式使用div id获取所有子项:

$('#youDivId').children().each(function(){
     alert(this.value);
});

谢谢,这正是我想做的,非常感谢。
$('#testDiv').find('*').each(function() {
     // do stuff
});
// returns the 'AddNode(...)' method call for every child.    
function addChildren(element){
   var command = "";
   $(element).find("> *").each(function(){
      command += ".AddNode("+createNode(this)+")";
   });
   return command;
}

// if the element has text, add the text
function addText(element){
   var elementText = $(element).clone().children().remove().end().text().trim();
   if(elementText) {
      return ".addText(\""+elementText+"\")";
   } else {
      return "";
   }
}

// returns the 'CreateNode(...)' method call for a node and all its children.
function createNode(element){
   var nodeName =  element.nodeName.toLowerCase();
   var csharpCommand = "CreateNode(\""+nodeName+"\")";
   csharpCommand += addChildren(element);
   csharpCommand += addText(element);
   return csharpCommand;
}

// begin
$("div#testDiv > *").each(function(){
    var csharpCommand = "HtmlElement."+createNode(this);
    console.log(csharpCommand);
});
$('#youDivId').children().each(function(){
     alert(this.value);
});