发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
前台html页面
<html> <head> <meta name="viewport" content="width=device-width" /> <title>showOptions</title> <style type="text/css"> body { font-family: Microsoft YaHei; font-size: 14px; } ul li { list-style-type: none; margin-left: -40px; } #MenuOption { border: 1px solid #CCCCCC; width: 210px; margin-top: -10px; display: none; } </style> <script src="../../Scripts/jquery-1.9.1.js" type="text/javascript"></script> <script src="../../Scripts/jsTest.js" type="text/javascript"></script> <script type="text/javascript"> $(function () { //清空文本框 $("#txtSelect").val(''); //展示的数据格式 var jsonValue = [{ "ManaId": 1, "ManaDisplay": "食品类", "rows": [{ "OptId": 1, "OptName": "肯德基" }, { "OptId": 2, "OptName": "麦当劳"}] }, { "ManaId": 2, "ManaDisplay": "科技类", "rows": [{ "OptId": 3, "OptName": "宇宙飞船" }, { "OptId": 4, "OptName": "神州七号"}]}]; //调用jsTest.js 中的selectOptions方法 var param = { "json": jsonValue, "MenuOption": "MenuOption", //显示下拉框数据 div 的Id "txtSelect": "txtSelect" //input 文本框的Id }; //调用jsTest.js 中的selectOptions方法 $("#content").selectOptions(param); }); </script> </head> <body> <div style="margin-left: 200px; width: 200px;" id="content"> <input type="text" id="txtSelect" style="font-family: Microsoft YaHei; width: 210px;font-size: 14px; height: 25px; border: 1px solid #CCCCCC;" /> <div id="MenuOption"> </div> </div> </body> </html>
jsTest.js 文件
(function ($) { $.fn.selectOptions = function (options) { var defaults = { MenuOption: "", //对应html页面中div的Id json: "", //对应html页面的json格式数据 txtSelect: "" //对应html页面input文本框的Id }; var options = $.extend(defaults, options); //继承defaults中的参数 $.each(options.json, function (key, value) { //循环遍历json数据 (简称:第一层数据) //动态的添加div元素 $('<div style="margin-left:20px; margin-top:10px;">' + value.ManaDisplay + '</div>').appendTo("#" + options.MenuOption); //动态的添加ul 和li 元素 var ul = $('<ul class="ulOpt"></ul>').appendTo("#" + options.MenuOption); $.each(value.rows, function (key, jsonData) { //通过第一层数据 循环遍历第二层(rows:[{}])中的数据 var current; var li = $('<li></li>').appendTo(ul) .bind('mouseover', function () { current = $(this).css('background-color'); $(this).css('background-color', '#CCCCCC'); }).bind('mouseout', function () { $(this).css('background-color', current); }); //动态的添加div checkbox 元素 var div = $('<div style="margin-left:50px;"></div>').appendTo(li); var chk = $('<input class="chk" type="checkbox" id=' + jsonData.OptId + ' />').appendTo(div) .bind('click', function () { //获选中的checkbox var checked = $("#" + options.MenuOption + " input[type=checkbox]:checked"); var checkValue = ','; var checkId = ','; //遍历选中的checkbox并且获取到checkbox 对应的Id 和span中的值 $.each(checked, function (key, value) { checkId += $(this).attr('id') + ","; checkValue += $(this).siblings("span").text().replace(/(^\s+)|(\s+$)/g, '') + ","; //剔除空格 }); checkValue = checkValue.substring(1, (checkValue.length - 1)); //把checkValue前后的',' 逗号 去掉 if (checked.length == 0) { checkValue = ""; } checkId = checkId.substring(1, (checkId.length - 1)); //获取到checkbox对应的Id的值 $("#txtSelect").val(checkValue); }); var span = $('<span>    ' + jsonData.OptName + '</span>').appendTo(div); }); }); //点击的元素当ID为传进来param 参数中的input的Id(txtSelect) 和显示数据的div的Id(MenuOption) 时显示div 否则隐藏 $("body").bind('click', function (e) { var target = $(e.target); if (target.closest("#" + options.MenuOption).length == 0 && target.closest("#" + options.txtSelect).length == 0) { $("#" + options.MenuOption).hide(); } else { $("#" + options.MenuOption).show(); } e.stopPropagation(); }); }; })(jQuery);
插入一张效果图
来自: 昵称10504424 > 《工作》
0条评论
发表
请遵守用户 评论公约
怎么用jquery定位一个div在某个input附近
JS代码大全高级应用
<span class=''kw''>true</span>:<span class=''kw''>false</span> <span class=''kw''>if</span>(ie) {<sp...
(双日历)bootstrap-daterangepicker
<div id="reportrange2" class="btn" style="display: inline-block; background: #fff; cursor: pointer;...
javascript面试题,提高版 吐槽+解析
var efg = str.substr(str.indexOf("efg"), 3);var key = str[i];var len = str.length;var url = “http://witmax.cn/index.php?key0=0&key1=1&key2=2″;默认情况javascript是同步...
又到周末了,我们一起来研究【浏览器如何检测是否安装app】吧
}11 #input { width: 80px;}12 </style>13 <script id="others_zepto_10rc1" type="text/javascript" cl...
文件上传+h5
width:600px;margin: 10px 20px 20px 20px;width: 300px;width: 200px;.btn {<div class="input-group" style="width:600px;<button type="button" class="btn bt...
jQuery EasyUI 的表单验证
jQuery EasyUI 的表单验证。代码中的脚本是自定义验证规则,validType="minLength[4]" invalidMessage="请输入至少4个字符">它们同时存在,则提示语句会是“请输入至少4个字符...
JQUERY 选择器大全
选择器是jQuery最基础的东西,本文中列举的选择器基本上囊括了所有的jQuery选择器,也许各位通过这篇文章能够加深对jQuery选择器的理解...
Jquery增删数据
微信扫码,在手机上查看选中内容