javascript - 用复选框替换特殊字符
问题描述
我正在构建一个类别过滤器,但类别将由我的最终用户确定。所以,我必须从用户那里得到一组类别,用“|”分隔 符号,然后将它们作为复选框分隔的类别。像这样:
列表:学生 | 员工 | 学院
Catfitler:我想要每个类别的复选框 - 学生、教师和员工
我有一个 jquery 事件来删除特殊字符“|” 我得到了作为学生员工教师的字符串
HTML:
<span class="work">Student | Employee | Faculty </span>
<br>
<button class="b">remove special characters</button>
<p>We can make this remove only what we want.</p>
JS:
function removeSpl() {
var ns = $('.work').text();
// Just remove commas and periods - regex can do any chars
ns = ns.replace(/([|])+/g, '');
$('.work').text(ns)
}
$( ".b" ).click(function() {
removeSpl();
});
我想在每个类别前面添加一个复选框。如何做到这一点?
解决方案
您必须通过分隔符拆分()您的列表|
,然后遍历这个新创建的数组并附加复选框并做一些其他事情。这里有一个例子:
const list = 'Student|Employee|Faculty';
const wrapper = $('#wrapper');
list.split('|').forEach(str => {
let cb = $('<input>', {
type: 'checkbox',
name: str
});
wrapper.append(cb);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id='wrapper'>
</div>
从我的角度来看,您不需要任何正则表达式模式来满足您的要求。您可以按所需的任何分隔符拆分列表。
推荐阅读
- java - 使用 GridLayoutManager 和 RecyclerView 更改列数以实现自动调整屏幕
- javascript - 将顶部的 td 元素与动态添加的元素对齐
- java - 如何转换为 PostgreSQL 数字类型?
- wordpress - 如何恢复 wordpress 安装?
- java - Logback 自定义 DB Appender 超时
- python - 文本分词器模式的解释
- android - 如何将字符串(微调器)中的选定值保存到 sqlite
- java - 使用 java regex 获取文件中特定单词中的内容
- clojure - 带 args 的代理函数示例
- reactjs - 渲染ui结构反应导航组件时防止页面重新加载