我正在学习jQuery,并且我已经能够使用以下代码:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js" charset="utf-8"></script>
</head>
<body>
<header>
<h1></h1>
</header>
<form name="myForm" method="GET" action="">
Text Field Populated With XML Value.</br>
<input type="text" id="text1" name="text1" />
</br></br>
Dropdown Populated With XML Data.</br>
<select id="cdLDAP">
<option/>
</select>
</form>
</div>
<script type="text/javascript">
// variables declaration
var XML_PATH = "XML/ou.xml";
// load XML file
$(function() {
$.ajax({
type: "GET",
url: XML_PATH,
dataType: "xml",
success: function(xml) {
$(xml).find('LDAP').find('OU').each(function(i) {
var ou = $(this).text();
$('#cdLDAP').append("<option class='ddheader'>"+ou+"</option>");
});
$(this).find('Name').each(function() {
var name = $(this).text();
$('#cdLDAP').append("<option class='ddindent' value='"+ name +"'>"+name+"</option>");
});
}
});
});
</script>
</body>
</html>
这很有效;它能够读取以下XML:
<?xml version= "1.0" encoding="UTF-8"?>
<DropDown>
<LDAP>
<OU>1</OU>
<OU>2</OU>
<OU>3</OU>
<OU>4</OU>
<OU>5</OU>
<OU>6</OU>
<OU>7</OU>
</LDAP>
</DropDown>
它在下拉列表cdLDAP
中显示值1,2,3,4,5,6,7没有问题。
到目前为止一切顺利。
我遇到的问题是填充一个简单的文本文件......在这种情况下:
<input type="text" id="text1" name="text1" />
假设我只想要xml文件中的第一个值,即:
中的“1” <OU>1</OU>
将显示在HTML5表单的文本字段中。我怎么做?我尝试过的任何东西似乎都没有用。我认为我对.each
部分感到困惑,就像在.each(function(i)
中一样,以及为
$('#text1').append(
答案 0 :(得分:1)
输入元素与其他HTML元素的行为略有不同。您需要修改元素的value
属性,而不是尝试将值插入其HTML中。
这可以使用jQuery完成:
$('#text1').val(...)
或只是普通的旧DOM属性重新分配:
$('#text1')[0].value = ...
答案 1 :(得分:0)
如果您希望将value
#text1
设置为第一个OU
值,则可以使用.index()
方法确定哪个:eq
存在。请记住.index()
是0 based values
所以我们会寻找$('OU:eq(0)')
:
$(xml).find('LDAP').find('OU').each(function(i) {
var ou = $(this).text();
if($(this).index()==0){
$('#text1').val(ou)
}
$('#cdLDAP').append("<option class='ddheader'>"+ou+"</option>");
});
或者您可以使用:
success: function(xml) {
$('#text1').val( $(xml).find('LDAP').find('OU:eq(0)').text() )
// rest of code
}