Javascript 使用核心ajax构建新元素&;聚合物中的xml
我对编写代码完全是新手,基本上我是从互联网上学习的,甚至没有朋友可以讨论,因为我是一个能力不同的人,只会操作鼠标。 所以,事情是这样的,当我决定学习聚合物时,我忘记了一件我不懂javaScript的基本事情。在过去的几年里,我学习了html、css和一些jquery 我所要做的就是创建一个元素“我的代码”。另存为my-codes.htmlJavascript 使用核心ajax构建新元素&;聚合物中的xml,javascript,ajax,xml,polymer,Javascript,Ajax,Xml,Polymer,我对编写代码完全是新手,基本上我是从互联网上学习的,甚至没有朋友可以讨论,因为我是一个能力不同的人,只会操作鼠标。 所以,事情是这样的,当我决定学习聚合物时,我忘记了一件我不懂javaScript的基本事情。在过去的几年里,我学习了html、css和一些jquery 我所要做的就是创建一个元素“我的代码”。另存为my-codes.html <link rel="import" href="../components/polymer/polymer.html"> <l
<link rel="import" href="../components/polymer/polymer.html">
<link rel="import" href="../components/core-ajax/core-ajax.html">
<polymer-element name="my-code">
<template>
<core-ajax auto url="../xmls/canon.xml" handleAs="xml" response="{{resp}}"></core-ajax>
<p>{{resp}}</p>
</template>
<script>
Polymer('mycode',{
});
</script>
</polymer-element>
{{resp}}
聚合物(“mycode”{
});
这是我的index.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>testing template</title>
<script src="components/platform/platform.js"></script>
<link rel="import" href="elements/my-codes.html">
</head>
<body unresolved>
<my-code></my-code>
</body>
</html>
测试模板
下面是我的canon.xml的一些示例
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<canonc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<canon>
<Error> EO </Error>
<Cause> Fuser unit malfunction </Cause>
<Action> Eng. Required </Action>
</canon>
<canon>
<Error> EOOO </Error>
<Cause> Fuser unit malfunction </Cause>
<Action> Eng. Required </Action>
</canon>
<canon>
<Error> E001 </Error>
<Cause> Fuser unit thermistor problem </Cause>
<Action> Eng. Required </Action>
</canon>
<canon>
<Error> E002 </Error>
<Cause> Fuser unit thermistor/triac problem </Cause>
<Action> Eng. Required </Action>
</canon>
<canon>
<Error> E003 </Error>
<Cause> Fuser unit thermistor/heater problem </Cause>
<Action> Eng. Required </Action>
</canon>
</canonc>
环氧乙烷
定影装置故障
英语必修课
EOOO
定影装置故障
英语必修课
E001
定影器单元热敏电阻问题
英语必修课
E002
定影器单元热敏电阻/双向晶闸管问题
英语必修课
E003
定影器单元热敏电阻/加热器问题
英语必修课
我只需要有人帮我完成(教我)代码。特别是javaScript部分。
我需要像这样的输出
<div class="card">
<div>error</div>
<div>cause</div>
<div>action </div>
</div>
<div class="card">
<div>error2</div>
<div>cause2</div>
<div>action2 </div>
</div>
错误
原因
行动
错误2
原因2
行动2
我知道我要求太多了,但请帮帮我。我有20个xml文档,否则我必须把它们做成别的东西。或者说是我的想法(因为我做的事情是为了爱好和学习)
这是我为了同样的目的在不同的html上使用的jquery脚本
function commn(){
$("#canon").empty();
$.ajax({
type: "GET",
url: "xmls/canon.xml",
dataType: "xml",
success: function(xml){
$(xml).find('canon').each(function(){
var serror = $(this).find('Error').text();
var sdesc = $(this).find('Cause').text();
var saction = $(this).find('Action').text();
$("<div class='concor'></div>").html("<div class='error'>" + serror + "</div>" + "<div class='desc'>" + sdesc + "</div>" + "<div class='actn'>" + saction + "</div>").appendTo("#canon");
});
},
error: function() {
alert("An error occurred while processing XML file.");
}
});
}
函数commn(){
$(“#佳能”).empty();
$.ajax({
键入:“获取”,
url:“xmls/canon.xml”,
数据类型:“xml”,
成功:函数(xml){
$(xml).find('canon').each(function(){
var serror=$(this.find('Error').text();
var sdesc=$(this.find('Cause').text();
var saction=$(this.find('Action').text();
$(“”).html(“+serror+++++sdesc+++++saction++”).appendTo(“#canon”);
});
},
错误:函数(){
警报(“处理XML文件时出错。”);
}
});
}
提前感谢首先,您在调用
Polymer
函数时输入了一个错误。第一个参数必须与元素名匹配,因此需要写入
Polymer('my-code', ...
然后,我建议使用和来最小化您的需求所需的JavaScript量。对此,您也不需要jQuery(顺便说一句,如果您知道jQuery,那么您就知道JavaScript,因为jQuery是用JavaScript编写的;-)
代码如下:
<polymer-element name="my-code">
<template>
<core-ajax auto url="../xmls/canon.xml" handleAs="xml"
response="{{resp}}"></core-ajax>
<template repeat="{{canon in resp | nodeList('canon')}}">
<div class="card">
<div>{{canon | nodeText('Error')}}</div>
<div>{{canon | nodeText('Cause')}}</div>
<div>{{canon | nodeText('Action')}}</div>
</div>
</template>
</template>
<script>
Polymer('my-code', {
nodeList: function(element, name) {
return element ?
[].slice.call(element.querySelectorAll(name)) : []
},
nodeText: function(element, name) {
return element.querySelector(name).innerHTML;
}
});
</script>
</polymer-element>
重复nodeList
过滤器返回的所有数组元素(即XML的canon
元素)
然后在每个
<div>{{canon | nodeText('Error')}}</div>
{{canon | nodeText('Error')}
nodeText
过滤器返回当前canon
节点的指定子节点的文本内容(例如“错误”)
您可以了解有关
querySelector()
和queryselectoral()
函数和的更多信息。不客气。很高兴看到我的回答有助于解决你的问题。在这种情况下,您可以通过单击答案左侧的复选标记将答案标记为已接受。所以每个人都可以看到,这不再是一个悬而未决的问题。
<div>{{canon | nodeText('Error')}}</div>