本文介绍了如何利用 jQuery 和 JavaScript,在不使用循环的情况下,根据 JSON 数据动态填充 HTML input 框。核心思路是利用正则表达式从 jQuery 选择器字符串中提取 input 框的 name 属性,然后根据 name 属性从 JSON 数据中获取对应的值,并将其赋值给 input 框。文章提供了两种实现方式,并附带了完整的示例代码。
在前端开发中,经常需要根据后端返回的 JSON 数据动态填充 HTML 表单。如果数据量很大,手动为每个 input 框赋值显然效率低下。本文将介绍两种利用 jQuery 和 JavaScript 实现动态填充 input 框的方法,避免使用循环,提高代码的可读性和可维护性。
方法一:使用立即执行函数表达式 (IIFE)
这种方法的核心是利用立即执行函数表达式,将 jQuery 选择器作为参数传递给函数,然后在函数内部使用正则表达式提取 input 框的 name 属性,并根据该属性从 JSON 数据中获取对应的值。
let data = { "foobar": "data foobar", "foo": "data foo", "bar": "data bar", "baz": "data baz", "qux": "data qux", "quux": "data quux", "corge": "data corge", "grault": "data grault", "garply": "data garply", "waldo": "data waldo", "fred": "data fred", "plugh": "data plugh", "xyzzy": "data xyzzy", "thud": "data thud" }; (s => s.val(data[/=(\w+)\]/.exec(s.selector)[1]]))($('input[name=foobar]')); (s => s.val(data[/=(\w+)\]/.exec(s.selector)[1]]))($('input[name=foo]')); (s => s.val(data[/=(\w+)\]/.exec(s.selector)[1]]))($('input[name=bar]'));
代码解释:
方法二:使用变量存储选择器字符串
这种方法将 jQuery 选择器字符串存储在一个变量中,然后使用该变量来获取 jQuery 对象,并提取 name 属性。
let data = { "foobar": "data foobar", "foo": "data foo", "bar": "data bar", "baz": "data baz", "qux": "data qux", "quux": "data quux", "corge": "data corge", "grault": "data grault", "garply": "data garply", "waldo": "data waldo", "fred": "data fred", "plugh": "data plugh", "xyzzy": "data xyzzy", "thud": "data thud" }; var s = "input[name=foobar]"; $(s).val(data[/=(\w+)\]/.exec(s)[1]]); var s = "input[name=foo]"; $(s).val(data[/=(\w+)\]/.exec(s)[1]]); var s = "input[name=bar]"; $(s).val(data[/=(\w+)\]/.exec(s)[1]]);
代码解释:
完整 HTML 示例代码:
<!DOCTYPE html> <html> <head> <title>Dynamic Input Filling</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> </head> <body> <input name="foobar" /> <input name="foo" /> <input name="bar" /> <script> let data = { "foobar": "data foobar", "foo": "data foo", "bar": "data bar", "baz": "data baz", "qux": "data qux", "quux": "data quux", "corge": "data corge", "grault": "data grault", "garply": "data garply", "waldo": "data waldo", "fred": "data fred", "plugh": "data plugh", "xyzzy": "data xyzzy", "thud": "data thud" }; (s => s.val(data[/=(\w+)\]/.exec(s.selector)[1]]))($('input[name=foobar]')); (s => s.val(data[/=(\w+)\]/.exec(s.selector)[1]]))($('input[name=foo]')); (s => s.val(data[/=(\w+)\]/.exec(s.selector)[1]]))($('input[name=bar]')); </script> </body> </html>
注意事项:
总结:
本文介绍了两种在不使用循环的情况下,利用 jQuery 和 JavaScript 动态填充 input 框的方法。这两种方法都利用正则表达式从 jQuery 选择器字符串中提取 input 框的 name 属性,然后根据该属性从 JSON 数据中获取对应的值。您可以根据实际情况选择最适合您的方法。
以上就是使用 jQuery 根据选择器字符串动态填充 Input 框的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号