Javascript 如何使用Jquery获取ulli数组和输入?

Javascript 如何使用Jquery获取ulli数组和输入?,javascript,jquery,Javascript,Jquery,我有五个ul列表,我正在使用,每个列表可能有一个输入 以下是一个例子: <form id="testForm"> <ul id="1"> <li>TEST</li> <li>Gender: <select id="gender" name="gender"> <option value="0">Male</option>

我有五个ul列表,我正在使用,每个列表可能有一个输入

以下是一个例子:

<form id="testForm">
<ul id="1">
     <li>TEST</li>
     <li>Gender: 
          <select id="gender" name="gender">
               <option value="0">Male</option>
               <option value="2">Female</option>
          </select>
     </li>
</ul>
<ul id="2">
     <li>TEST2</li>
     <li>Gender2: 
          <select id="gender2" name="gender">
               <option value="0">Male</option>
               <option value="2">Female</option>
          </select>
     </li>
</ul>
</form>

要获取所选的
选择值
,可以使用
$(“#性别”).val()
,例如:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="language" content="en" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body>


<form id="testForm">
    <ul id="1">
         <li>TEST</li>
         <li>Gender: 
              <select id="gender" name="gender">
                   <option value="0">Male</option>
                   <option value="2">Female</option>
              </select>
         </li>
    </ul>
    <ul id="2">
         <li>TEST2</li>
         <li>Gender2: 
              <select id="gender2" name="gender">
                   <option value="0">Male</option>
                   <option value="2">Female</option>
              </select>
         </li>
    </ul>
    <input type="submit" value="submit" />
</form>


<script>
jQuery(document).ready(function($) { 

    $('#testForm').submit(function(){
        $(this).find('select').each(function(){
            alert( $(this).val() );
        });
         return false;
    });

});
</script>

</body>
</html>

  • 试验
  • 性别: 男性 女性
  • 测试2
  • 性别2: 男性 女性
jQuery(文档).ready(函数($){ $('#testForm')。提交(函数(){ $(this).find('select').each(function(){ 警报($(this.val()); }); 返回false; }); });
也许这会让你朝着正确的方向前进一点:

$('#testForm').submit(function() {    
   var optionTexts = [];
   $('ul li').each(function(){
        var $select = $(this).find('select');
        if($select.length)
           optionTexts.push($select.val());

    });   
    return false;
});

您可以在这里使用它-->

使用jamiec的小提琴,您还可以创建列表项的多维数组

$('#testForm').submit(function() {     
   var optionTexts = [];
   $('ul li',this).each(function(){
        var $select = $(this).find('select');
        if($select.length)
           optionTexts[optionTexts.length-1].push($select.val());
        else optionTexts.push(new Array($(this).text()));
    });
    return false;
});
()

编辑

尝试更新的版本。由于某些原因,关联数组键不适用于我,抱歉

$('#testForm').submit(function() {     
   var optionTexts = [];
    count = 0;
   $('ul li',this).each(function(i){
        var $select = $(this).find('select');
        if($select.length)
           optionTexts[optionTexts.length-1].push($select.attr('name') => $select.val());
       else {
           count++;
           optionTexts.push(new Array(count,$(this).text()));
       }
    });
    if (typeof console != 'undefined')
        console.log(optionTexts);
    else alert(optionTexts);
    return false;
});
()

$('#testForm').submit(function() {     
   var optionTexts = [];
   $('ul li',this).each(function(){
        var $select = $(this).find('select');
        if($select.length)
           optionTexts[optionTexts.length-1].push($select.val());
        else optionTexts.push(new Array($(this).text()));
    });
    return false;
});
$('#testForm').submit(function() {     
   var optionTexts = [];
    count = 0;
   $('ul li',this).each(function(i){
        var $select = $(this).find('select');
        if($select.length)
           optionTexts[optionTexts.length-1].push($select.attr('name') => $select.val());
       else {
           count++;
           optionTexts.push(new Array(count,$(this).text()));
       }
    });
    if (typeof console != 'undefined')
        console.log(optionTexts);
    else alert(optionTexts);
    return false;
});