javascript - 如何基于某个类(javascript/jQuery)动态添加段落?
问题描述
我正在尝试基于某个ID(#switch-labelX)的hasClass(右/左)动态添加某些段落,并在jQuery中循环。
我在初始情况下所拥有的(尚未应用 jQuery):
<div class="widget-switch-btn-wrapper widget-switch-btn-wrapper-default checked">
<small id="#switch-label1" class="widget-switch-btn right">
</small>
</div>
<div class="widget-switch-btn-wrapper widget-switch-btn-wrapper-default checked">
<small id="#switch-label2" class="widget-switch-btn left">
</small>
</div>
通过循环几个“小”标签为开关提供初始标签,并将开关标签也作为选项标签:
<div class="widget-switch-btn-wrapper widget-switch-btn-wrapper-default checked">
<small id="#switch-label1" class="widget-switch-btn right">
<p style="text-align: center;padding-top: 1%;color: white;">Other</p>
</small>
<p style="text-align: left;padding-left: 15%;;color: #092a72; display:inline">Kom</p>
<p style="text-align: left;padding-left: 35%;padding-top: 1%;color: #092a72;display:inline">Other</p>
</div>
<div class="widget-switch-btn-wrapper widget-switch-btn-wrapper-default checked">
<small id="#switch-label2" class="widget-switch-btn left">
<p style="text-align: center;padding-top: 1%;color: white;">Other</p>
</small>
<p style="text-align: left;padding-left: 15%;;color: #092a72; display:inline">Kom</p>
<p style="text-align: left;padding-left: 35%;padding-top: 1%;color: #092a72;display:inline">Other</p>
</div>
每次当“小”类更改(右/左)时,它应该清除/重写这些标签(内联段落也可以写一次)。
我现在的代码是:
//find all the switch btns with the switch btn
$(' .widget-switch-btn').each(function (index) {
//create idlabel for switch
var idLabel = '#switch-label' + (index + 1);
//set the switch id for all switch btn's
$(this).attr('id', idLabel);
//set other fixed labels
$('.widget-switch-btn').after('<p style="text-align: left;padding-left: 15%;;color: #092a72; display:inline">Komatsu</p><p style="text-align: left;padding-left: 35%;padding-top: 1%;color: #092a72;display:inline">Other</p>');
});
解决方案
首先,您编写它的方式不需要该hasClass
方法。$(idLabel+".right")
总是有“正确”的班级。它在您的选择器中。
但要完成这项工作,您需要使用on
:
$(document).on('change', idLabel, function(e) {
$target = $(e.target); // cache the element that changed so you maintain its state
if ($target.hasClass('right')) {
$target.html('<p style="text-align: center;padding-top: 1%;color: white;">Other</p>');
alert("right");
} else if ($target.hasClass('left')) {
$target.html('<p style="text-align: center;padding-top: 1%;color: white;">Kom</p>');
alert("left");
}
});
推荐阅读
- elixir - 长生不老药 lua 日历在 shitf_zone 时显示不同的行为
- java - 方法不存在类链接问题:在两个链接的 Java 项目中从具有相同名称和项目路径的类调用方法时
- linux - dnssec-dsfromkey 显示未知算法错误
- json - 使用 Node.js Express 检查 POST 正文请求语法和格式
- angular6 - Angular Elements:一个功能模块项目结构中的几个自定义 Web 组件可能吗?
- git - bitbucket 上的拉取请求不会触发竹子上的构建
- api - session_start():无法发送会话cookie - 已发送的标头。在发布请求的codeigniter rest-server api liberay中
- c# - WCF:SqlConnectionStringBuilder 中没有密码 - 为什么它起作用?
- node.js - 环回框架中远程方法的默认值
- ruby - 迭代哈希数组以根据另一个哈希键对一个哈希值的值求和