-3

我需要使用 JQuery 找到标记中的所有元素名称和每个元素中的所有属性,每个元素都有不同的属性名称和值我需要知道这个属性名称和值但不知道如何

    <Circuit>
<C Type="Bipolar" Name="c1">
        <Cathode row="10" col="20"/>
        <Anode row="15" col="50"/>

    </C>
    <AND Name="and1">``
        <Input>
            <Pin row="10" col="40"></Pin>
            <Pin row="20" col="40"></Pin>
        </Input>
        <Output>
            <Pin row="30" col="50"></Pin>
        </Output>
    </AND>

    <Diode Name="d1" Value="30">
        <Anode row="30" col="50"></Anode>
        <Cathode row="40" col="60"></Cathode>
    </Diode>

<R Type="Constant" Name="r1">
    <Node row="60" col="80"></Node>
    <Node row="70" col="80"></Node>
</R>    
</Circuit>

我将解释我需要什么,首先需要知道标签 o/p 中的所有元素(标签名称),就像电路标签 C 和二极管 R 中的这个元素

在此之后需要像这样知道每个元素中的所有属性和元素

第一个元素 (C) 有 2 个属性 第一个属性是“类型”,该属性的值 =“Bipolar” 第二个属性是“名称”,这个属性的值 =“c1”,有 2 个元素 阴极 阳极

并且每个元素都相同

4

2 回答 2

0

以下先前的问题显示了如何使用 JavaScript 获取元素的所有属性。同样,可以使用 jQuery 获取元素:

使用 Javascript/jQuery 从 HTML 元素中获取所有属性

为了使您的代码可以跨浏览器工作,请按如下方式定义您的 xml 变量:

var xml = $( $.parseXML( 'XML-String' ) );

您可以按如下方式获取所有元素和属性:

var all = xml.find('*').map(function(v,i) {
    var ux = {};
    $.each( this.attributes, function(index, node) {
         ux[ node.nodeName ] = node.nodeValue;
    });
    return $.extend({}, { nodeName: this.nodeName }, {attributes:ux});
})
.get();

这应该给你的输出看起来像:

[{"nodeName":"Circuit","attributes":{}},{"nodeName":"C","attributes":{"Type":"Bipolar","Name":"c1"}},{"nodeName":"Cathode","attributes":{"row":"10","col":"20"}}, ....... .. .. .. ]

JS 小提琴演示

于 2014-05-23T00:38:27.607 回答
0

[attr]在 jQuery 中有许多其他选择器中的属性匹配器

$("[Name]")

将为您提供具有属性名称的所有元素

然后,您可以循环并使用 jQuerysattr()函数获取实际名称

$("[Name]").each(function() {
    console.log($(this).attr("Name"));
    console.log($(this).attr("Value"));
});

编辑

在评论中我发现问题实际上是如何将整个结构序列化为数据集。因此,这可能是重复的https://stackoverflow.com/a/5287305/576725

于 2014-05-22T23:42:55.457 回答