我正在制作表单中所有标签的选择列表。然后将使用选择列表来选择每个表单字段。该表格将类似于亚马逊主搜索框,但具有各种字段类型。
问题是标签未正确分割,因此选项值无法正确显示。
如果有人可以提供反馈,那将会非常有帮助,因为我已经有一段时间了。
谢谢你,如果你有任何其他问题,请告诉我。
$.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();
答案 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