2013-02-26 49 views
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> 

而且它在下拉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(

回答

1

投入要素的其他HTML元素的表现略有不同。不需要将值插入到HTML中,您需要修改元素的value属性。

这可以使用jQuery来完成:

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

或者只是普通的老DOM属性重新分配:

$('#text1')[0].value = ... 
0

如果你想找的#text1value设置为第一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 
}