Javascript对indexOf采取.innerHTML进行检查

瑞安·萨蒙斯(Ryan Salmons)

我有一个名为“选项”的变量。每当用户选中其中一个复选框时,我需要使用“选项”为每个选中的复选框填充.innerHTML字符串。例如,当Instagram的和Google+检查, '选项' 将Instagram的=,的Google+。

的HTML:

<section id="extra-features">
    <div class="span3">
        <label class="checkbox" for="Checkbox1">
            <input type="checkbox" class="sum" value="50" data-toggle="checkbox"> Instagram
        </label>
        <label class="checkbox">
            <input type="checkbox" class="sum" value="50" data-toggle="checkbox"> Review site monitoring
        </label>
        <label class="checkbox">
            <input type="checkbox" class="sum" value="50" data-toggle="checkbox"> Google+
        </label>
        <label class="checkbox">
            <input type="checkbox" class="sum" value="50" data-toggle="checkbox"> LinkedIn
        </label>
    </div>

    <div class="span3">
        <label class="checkbox">
            <input type="checkbox" class="sum" value="50" data-toggle="checkbox"> Pinterest
        </label>
        <label class="checkbox">
            <input type="checkbox" class="sum" value="50" data-toggle="checkbox"> FourSquare
        </label>
        <label class="checkbox">
            <input type="checkbox" class="sum" value="50" data-toggle="checkbox"> Tumblr
        </label>
        <label class="checkbox">
            <input type="checkbox" class="sum" value="50" data-toggle="checkbox"> Advertising
        </label>
    </div>
</section>

<div class="card-charge-info">
    Your card will be charged $<span id="payment-total">0</span> now, and your subscription will bill $<span id="payment-rebill">0</span> every month thereafter. You can cancel or change plans anytime.
</div>

javascript:

var price = 0,
    additional = 0,
    options = "",
    inputs = document.getElementsByClassName('sum'),
    total  = document.getElementById('payment-total'),
    total2 = document.getElementById('payment-rebill');

for (var i=0; i < inputs.length; i++) {
    inputs[i].onchange = function() {
        var add = this.value * (this.parentNode.className.split(" ").indexOf("checked") > -1 ? 1 : -1);
            additional += add
            total.innerHTML = price + additional;

        if (price == select.options[2].value) {
            total2.innerHTML = 0;
        }
        else {
            total2.innerHTML = price + additional;
        }
    }
}

JSFiddle:http : //jsfiddle.net/rynslmns/LQpHQ/

布拉德·克里斯蒂

我建议每次他们更改检查状态时都将这些信息制成表格。您现在正在做的事情有问题;当前,您从0开始,但是通过选中和取消选中几个选项,最终很快处于负数(总价)。

另外,选项(作为字符串)将很难跟上。我可能会创建一个可以添加/删除的数组(但是如果您将其制成表格,则不必担心)。

例如:

var inputs = document.getElementsByClassName('sum'),
    total  = document.getElementById('payment-total'),
    total2 = document.getElementById('payment-rebill');

// Perform the summing
// Though I'm not sure where total is coming from, but you can work that out.
// And for now I have it alerting the options, but you can do whatever you'd like with that.
function sumItUp(){
    var ttl = 0, additional = 0, options = [];
    for (var i = 0; i < inputs.length; i++){
        if (inputs[i].checked){
            options.push(inputs[i].parentNode.textContent.trim());
            var n = new Number(inputs[i].value);
            if (!isNaN(n)) additional += n;
        }
    }
    total.innerHTML = ttl.toFixed(2);
    total2.innerHTML = (ttl + additional).toFixed(2);
    alert('Options:\n\n' + options.join(', '));
}

// bind events to sum it on every change
for (var i = 0; i < inputs.length; i++){
    inputs[i].addEventListener('change', sumItUp);
}

// Polyfill for trim()
if (!String.prototype.trim){
    String.prototype.trim = function(){
        return this.replace(/^\s+|\s+$/g,'');
    };
}

jsFiddle

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

HTTP Servlet 设置数据响应并通过 Javascript 进行检查

来自分类Dev

Javascript:存储20,000个数字ID并对其进行检查的最有效方法?

来自分类Dev

Javascript:存储20,000个数字ID并对其进行检查的最有效方法?

来自分类Dev

了解Javascript中的“未定义”:其工作方式,如何安全地对其进行检查以及是否可以重新分配

来自分类Dev

从CheckBox获取值进行检查

来自分类Dev

nicEdit textarea名称进行检查

来自分类Dev

如何对“0”进行检查?

来自分类Dev

Elgg 安装错误:您的服务器不支持重写规则的自动测试,并且您的浏览器不支持通过 JavaScript 进行检查

来自分类Dev

使用函数对AngularJs ng进行检查

来自分类Dev

Linq在创建select之前进行检查

来自分类Dev

每次运行时进行检查的更好编码

来自分类Dev

仅在<选择多个>中进行检查

来自分类Dev

MVC默认根据项目中的值进行检查

来自分类Dev

Drools LHS 根据可选事实进行检查

来自分类Dev

对 Sqlite 和 python 表中的项目进行检查

来自分类Dev

是否可以“暂停”发送消息以进行检查?

来自分类Dev

是否可以进行检查集合存在的查询?

来自分类Dev

在修订日期和培训日期之间进行检查

来自分类Dev

在降神会和付款之间进行检查

来自分类Dev

检查在DropDownList中选择的值,并对照XML值进行检查

来自分类Dev

如何检查值是否在数组中并使用复选框进行检查

来自分类Dev

检查在DropDownList中选择的值,并对照XML值进行检查

来自分类Dev

如何在if条件下对所有检查UITextField进行检查

来自分类Dev

C ++ 11静态断言是否会失败,除非使用Clang ++进行检查?

来自分类Dev

设计登录时需要另外一种条件进行检查

来自分类Dev

新的Google ReCaptcha实施并在提交前进行检查

来自分类Dev

使用os.Stat与os.MkdirAll进行检查

来自分类Dev

如何使用正则表达式进行检查?

来自分类Dev

流星发布-如何发布数据并使用个人资料信息进行检查

Related 相关文章

  1. 1

    HTTP Servlet 设置数据响应并通过 Javascript 进行检查

  2. 2

    Javascript:存储20,000个数字ID并对其进行检查的最有效方法?

  3. 3

    Javascript:存储20,000个数字ID并对其进行检查的最有效方法?

  4. 4

    了解Javascript中的“未定义”:其工作方式,如何安全地对其进行检查以及是否可以重新分配

  5. 5

    从CheckBox获取值进行检查

  6. 6

    nicEdit textarea名称进行检查

  7. 7

    如何对“0”进行检查?

  8. 8

    Elgg 安装错误:您的服务器不支持重写规则的自动测试,并且您的浏览器不支持通过 JavaScript 进行检查

  9. 9

    使用函数对AngularJs ng进行检查

  10. 10

    Linq在创建select之前进行检查

  11. 11

    每次运行时进行检查的更好编码

  12. 12

    仅在<选择多个>中进行检查

  13. 13

    MVC默认根据项目中的值进行检查

  14. 14

    Drools LHS 根据可选事实进行检查

  15. 15

    对 Sqlite 和 python 表中的项目进行检查

  16. 16

    是否可以“暂停”发送消息以进行检查?

  17. 17

    是否可以进行检查集合存在的查询?

  18. 18

    在修订日期和培训日期之间进行检查

  19. 19

    在降神会和付款之间进行检查

  20. 20

    检查在DropDownList中选择的值,并对照XML值进行检查

  21. 21

    如何检查值是否在数组中并使用复选框进行检查

  22. 22

    检查在DropDownList中选择的值,并对照XML值进行检查

  23. 23

    如何在if条件下对所有检查UITextField进行检查

  24. 24

    C ++ 11静态断言是否会失败,除非使用Clang ++进行检查?

  25. 25

    设计登录时需要另外一种条件进行检查

  26. 26

    新的Google ReCaptcha实施并在提交前进行检查

  27. 27

    使用os.Stat与os.MkdirAll进行检查

  28. 28

    如何使用正则表达式进行检查?

  29. 29

    流星发布-如何发布数据并使用个人资料信息进行检查

热门标签

归档