我想在XML子元素上使用jQuery.each()方法。
以下是我的代码。
case class User (value1: Option[Role] = None, value2: Option[String] = None) extends Role
object User {
implicit val jsonFormatter: Format[User] = Json.format[User]
}
但是这个功能显示了什么。 我想要和Xml元素一样多。 我该如何解决?
答案 0 :(得分:2)
jQuery的find()
仅适用于后代,您的<approvalcontent>
元素是根元素,因此您想要的可能是filter()
而不是
$(xml).filter("approvalcontent")...
然而,您应该在访问XML之前解析XML,因为这样可以为您提供实际有效的XML文档,您可以使用find()
function bindContent(xml) {
var parsed = $.parseXML(xml);
$(parsed).find("approvalcontent").children().each(function() {
alert("here!");
});
}
答案 1 :(得分:1)
只需使用$(xml).children()
$(function() {
var xml = "<approvalcontent><vac_applier>Name</vac_applier><vac_sdate>2017-02-03</vac_sdate><vac_edate>2017-02-10</vac_edate><vac_reason>kind</vac_reason></approvalcontent>";
bindContent(xml);
});
function bindContent(xml) {
$(xml).children().each(function() {
console.log("here!");
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
您需要使用.filter()
代替.find()
,因为approvalcontent
位于顶层。
$(function() {
var xml = "<approvalcontent><vac_applier>Name</vac_applier><vac_sdate>2017-02-03</vac_sdate><vac_edate>2017-02-10</vac_edate><vac_reason>kind</vac_reason></approvalcontent>";
bindContent(xml);
});
function bindContent(xml) {
$(xml).filter("approvalcontent").children().each(function() {
alert("here!");
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>