我试图遍历给定div中的所有元素,并将结果(我稍后将使用的C#代码)输出到屏幕进行测试.
所以,如果我有像这样的HTML:
<div id="testDiv">
<test>
<a>aVal</a>
<c>
<cc>ccVal</cc>
</c>
</test>
</div>
Run Code Online (Sandbox Code Playgroud)
我正在尝试生成此字符串值:
HtmlElement.CreateNode("test").AddNode(CreateNode("a").addText("aVal")).AddNode(CreateNode("c").AddNode(CreateNode("cc").addText("ccVal"))
Run Code Online (Sandbox Code Playgroud)
现在我把这个jquery放到了位置,但我不确定如何深入到其他节点:
var x = "HtmlElement.";
$('div#testDiv').children().each(function () {
var nodeNameStr = this.nodeName.toLowerCase();
var nodeText = $(this).text();
x += "CreateNode(nodeNameStr).addText(nodeText)"
});
Run Code Online (Sandbox Code Playgroud)
Gab*_*abe 18
$('#testDiv').find('*').each(function() {
// do stuff
});
Run Code Online (Sandbox Code Playgroud)
这是一个比以前的答案更完整的例子:
// 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);
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
34486 次 |
最近记录: |