Javascript/jQuery序列化select标记中的所有选项

Javascript/jQuery序列化select标记中的所有选项,javascript,jquery,serialization,Javascript,Jquery,Serialization,我有这样的选择框 <select size="20" multiple="" id="left_lps" name="lps[]"> <option lpprobability="10" lpname="1 - Chrome" id="opt8" value="8">1 - Chrome</option> <option lpprobability="20" lpname="2 - Chrome" id="opt9" value="9"

我有这样的选择框

<select size="20" multiple="" id="left_lps" name="lps[]"> 
    <option lpprobability="10" lpname="1 - Chrome" id="opt8" value="8">1 - Chrome</option>
    <option lpprobability="20" lpname="2 - Chrome" id="opt9" value="9">2 - Chrome</option>
    <option lpprobability="33" lpname="3 - Chrome" id="opt10" value="10">3 - Chrome</option>
    <option lpprobability="15.33" lpname="4 - Chrome" id="opt11" value="11">4 - Chrome</option>
    <option lpprobability="50" lpname="5 - Skype" id="opt12" value="12">5 - Skype</option>
    <option lpprobability="23" lpname="6 - Skype" id="opt13" value="13">6 - Skype</option>
    <option lpprobability="80" lpname="7 - Skype" id="opt14" value="14">7 - Skype</option>
    <option lpprobability="11" lpname="8 - Skype" id="opt15" value="15">8 - Skype</option>
    <option lpprobability="26" lpname="9 - Skype" id="opt16" value="16">9 - Skype</option>
    <option lpprobability="33" lpname="10 - Skype" id="opt17" value="17">10 - Skype</option>
</select>

我该怎么做?如果可能的话,如果不可能,我会找到另一种方法来获取这些对,但优先顺序是在序列化时获取选择框中的所有选项,而不仅仅是选择的选项。

您必须自己构建查询字符串,因为jQuery中没有神奇的函数允许您这样做。以下是您的做法:

获取对选项元素的引用:

var $select = $('select');
var selectName = $select.attr('name');
var $options = $select.find('option');
浏览选项元素并检索值和概率属性对:

var optionPairs = $.map($options, function(element) {
    var $element = $(element);
    return selectName + '=' + $element.val() + '&lpprobability=' + $element.attr('lpprobability');
});
最后,用&:

var queryString = optionPairs.join('&');

谢谢你的帮助,但我找到了另一种方法。因为这个选择框在开始时是空的,所以我决定使用一些不可见的div和输入,所以当我在整个表单上调用serialize时,我得到了我想要的:D
var queryString = optionPairs.join('&');