jquery makeArray然后拆分

时间:2013-07-30 01:06:56

标签: jquery arrays split

我正在制作表单中所有标签的选择列表。然后将使用选择列表来选择每个表单字段。该表格将类似于亚马逊主搜索框,但具有各种字段类型。

问题是标签未正确分割,因此选项值无法正确显示。

如果有人可以提供反馈,那将会非常有帮助,因为我已经有一段时间了。

谢谢你,如果你有任何其他问题,请告诉我。

$.fn.menuForm = function(){
var _fo = $("form");
var _hi = $(_fo).find(".views-widget");
var _ho = $(".views-exposed-widget").not(".views-submit-button");
var _lb = $(".views-exposed-widget label").text();

$(_fo).before("<span id='expand'>Search</span>");
$(_fo).find(".views-submit-button").insertAfter("form");
$(_fo).find(".views-reset-button input").appendTo(".views-submit-button");
$("body").append("<select id='selopt'><option></option></select>");

var arr = [];

var arr = $.makeArray(_lb);
var opts = arr.slice('');
var sel = "";
alert(opts);

$.each(opts,function(i){
    sel += '<option value="'+opts[i]+'">'+opts[i]+'</option>';
});
$('#selopt').append(sel);

$("input[type='text']").change(function(){
    $(this).closest(".views-exposed-widget").find("label").addClass("_s").show();
});
};
$(this).menuForm();

这是我的进步: http://jsfiddle.net/arkjoseph/swDy5/3/

3 个答案:

答案 0 :(得分:2)

不是查询所有标签,而是将文本粘贴到数组中,然后再将其拆分以填充html,您可以在找到它时迭代每个元素:

$("body").append("<select id='selopt'><option></option></select>");

var sel = "";
$(".views-exposed-widget label").each(function () {
    var text = $(this).text();
    sel += '<option value="'+ text +'">'+ text+'</option>';
});
$('#selopt').append(sel);

答案 1 :(得分:1)

我认为$.makeArray只获取html元素..删除.text()并更改$.each循环 到这个

$.each(arr,function(){
    sel += '<option value="'+$(this).text()+'">'+$(this).text()+'</option>';
});

答案 2 :(得分:1)

$(".views-exposed-widget label").each(function(){
        $("#selopt").append("<option value="+$(this).text()+">"+$(this).text()+"</option>");
    });

查看更新后的fiddle