通过具有相同 ID 的 JS 将符号分配给多个<span>
assigning symbol to multiple <span> via JS with same id
我在页面上有一个跨度,它根据数据库表中的记录数通过循环出现,因此有时可能存在单个或多个跨度,确切的数字无法知道,跨度如下所示
<span class="add-on" id="goaltypeicon"></span>
然后我有一个下拉菜单,根据选择,我需要跨度来显示$
符号或%
符号
这是下拉菜单
<select onchange="selectSavingOption(this)" class="input-xxlarge" id="saving_options"
name="saving_options" style="width: 100%">
<option value="weekly_savings_amount"> Set Weekly Savings Amount</option>
<option value="weekly_savings_percent">Allocate % Of Weekly Savings</option>
</select>
这是正在调用的 JS 函数onchange
function selectSavingOption(element) {
if (element.options[element.selectedIndex].value == 'weekly_savings_amount') {
alert('amount');
$("#goaltypeicon").html('$');
}if (element.options[element.selectedIndex].value == 'weekly_savings_percent') {
alert('percent');
$("#goaltypeicon").html('%');
}
}
上述解决方案有效,但由于某种原因,它仅适用于 1 个跨度。我猜它找到的第一个跨度,但它不适用于其余跨度。
例如,如果屏幕上有 4 个跨度,则 $
和 %
的显示仅适用于第一个跨度。
如果我能在这方面得到一些帮助,我将不胜感激。 我需要根据选择将范围符号从$
更改为%
的解决方案。
值weekly_savings_amount
应显示$
值weekly_savings_percent
应显示%
如 W3C 中所述,ID-Attribute 在其范围内必须是唯一的。(主要是显示的网页)。参考
您的网页:
<span class="add-on" id="goaltypeicon_<?= $i ?>"></span>
$i
可以是计数器(在您的循环中),如果您希望在您的跨度中使用 ID
您的JS:
function selectSavingOption(element) {
if (element.options[element.selectedIndex].value == 'weekly_savings_amount') {
alert('amount');
$(".add-on").html('$');
}if (element.options[element.selectedIndex].value == 'weekly_savings_percent') {
alert('percent');
$(".add-on").html('%');
}
}
如果您的跨度的内容不应该在所有跨度中更新,您必须使您的类多样化或选择另一个选择器,如 :first
, :nth-child
通过附加到您的 ID 的计数器的方法,您还可以在 jQuery 中选择通配符选择器:
$("span[id^=goaltypeicon_]")
这将选择 ID 以 goaltypeicon_
开头的所有范围
使用这个 : 因为你正在使用多个元素并且给它们相同的 id 不是一个好方法,因为 Id 必须是唯一的。因此,从您的跨度中删除 Id,否则为跨度 ID 提供一个动态名称。
并在您的脚本中使用类。
function selectSavingOption(element) {
if (element.options[element.selectedIndex].value == 'weekly_savings_amount') {
alert('amount');
$(".add-on").html('$');
}if (element.options[element.selectedIndex].value == 'weekly_savings_percent') {
alert('percent');
$(".add-on").html('%');
}
}
id
属性应该是页面上单个项目的唯一标识符。某些浏览器和库可能允许您选择页面上具有匹配id
的所有项目,但这不是该属性的正确用法,因此您无法保证它在所有情况下都能按预期工作。
此外,如果所有<span />
都具有相同的id
则您正在有效地创建一个class
(该组对相似的元素进行分组),因此使用类更有意义。
例如
<span class="add-on goaltypeicon"></span>
这会稍微改变处理程序函数,如下所示:
function selectSavingOption(element) {
if (element.options[element.selectedIndex].value == 'weekly_savings_amount') {
alert('amount');
$(".goaltypeicon").html('$');
} else if (element.options[element.selectedIndex].value == 'weekly_savings_percent') {
alert('percent');
$(".goaltypeicon").html('%');
}
}
'''
- 使用Clipboard.js复制span文本
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 在循环中分配json值时,值被覆盖
- 动态分配GA增强型电子商务跟踪器
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 如何在jQuery中将函数的输出分配给变量
- 为集合分配大量的模型弹药
- onclick函数需要双击,因为类分配延迟
- Javascript 将变量分配给警报
- 将节点数据分配给另一个变量jstree
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- Javascript变量分配-按类别
- 将<span样式>凯迪托
- 兰吉 |如何在 span 标签上使用单击事件删除突出显示的文本
- 如何将内容分配给元素
- 为变量分配多个nodejs导出返回值时出现问题
- Jslint 错误:需要条件表达式,而是看到分配
- 为什么可以't我将检索到的文档分配给控制台中的变量
- 将数组的拼接分配给自身时,Javascript控制台打印不起作用
- 当DIV中的文本高亮显示时,如何获得DIV中Span的值?(Javascript)