1

我刚刚学习 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>

它在下拉列表中显示值 1,2,3,4,5,6,7cdLDAP没有问题。

到目前为止,一切都很好。

我遇到的问题是填充一个简单的文本文件......在这种情况下:

<input type="text" id="text1" name="text1" />

假设我只想要 xml 文件中的第一个值,即来自以下的“1”:

        <OU>1</OU>

显示在 HTML5 表单的文本字段中。我怎么做?我尝试过的任何方法似乎都不起作用。我想我对这个.each部分感到困惑,比如放在.each(function(i)什么位置上

$('#text1').append(
4

2 回答 2

1

输入元素的行为与其他 HTML 元素略有不同。value您需要修改元素的属性,而不是尝试将值插入其 HTML 。

这可以使用 jQuery 来完成:

$('#text1').val(...)

或者只是简单的旧 DOM 属性重新分配:

$('#text1')[0].value = ...
于 2013-02-26T22:14:00.443 回答
0

如果您希望将 of 设置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
}
于 2013-02-26T22:20:27.170 回答