javascript - 通过具有相同 ID 的 JS 将符号分配给多个 <span>

标签 javascript jquery html css

我在页面上有一个跨度,它根据数据库表中的记录数通过循环出现,所以有时可能有一个跨度或多个跨度,无法知道确切的数字,跨度看起来像这样

<span class="add-on" id="goaltypeicon"></span>

然后我有一个下拉菜单,根据选择,我需要跨度来显示 $ 符号或 % 符号

这是dropdpwn菜单

<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 属性在其范围内必须是唯一的。 (主要是显示的网页)。 Reference

您的 HTML:

<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_ 开头的所有范围

关于javascript - 通过具有相同 ID 的 JS 将符号分配给多个 <span>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26970880/

相关文章:

javascript - mozilla 框方向不适用于绝对定位

html - 滚动仅在主 Content-Div 中处于事件状态的主布局

jquery - 使用 jquery $.ajax 提交表单 - 更改表单的 View

javascript - 将多个函数添加到外部 javascript 文件

javascript - RxJs结合http请求

javascript - 在记录 Action 中变得空虚 - twilio

javascript - V8 JavaScript : Why do C++ constructor functions filter Proxy?

javascript - 使用 dojo 按类名删除元素

javascript - 如何验证拖放 html 5 表单?

javascript - 检查 if/en/or/es/in document.location