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,7 がドロップダウンcdLDAPに問題なく表示されます。

ここまでは順調ですね。

私が抱えている問題は、単純なテキストファイルを作成することです...この場合:

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

xml ファイルの最初の値、つまり次の「1」が必要だとします。

        <OU>1</OU>

HTML5 フォームのテキスト フィールドに表示されます。それ、どうやったら出来るの?私が試したことは何もないようです。私はその.each部分と混同し.each(function(i)ていると思います.

$('#text1').append(
4

2 に答える 2

1

入力要素の動作は、他の HTML 要素とは少し異なります。値を HTML に挿入しようとする代わりにvalue、要素のプロパティを変更する必要があります。

これは、jQuery を使用して実現できます。

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

または単純な古い DOM プロパティの再割り当て:

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

valueof#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 に答える