0

例如,我有一个这样的 html:

<li><label class="desc"><font color="green">Want to get email ($<span id="price">50</span>/month)</font></label>
            <input type="checkbox" checked="" id="subscribe" name="subscribe"> bla bla bla</li>

<li><label class="desc">-$30 subscribe</label>
            <input type="checkbox"  id="custom_test" name="custom_test">Please check this to add your own email</li>

结构:

[复选框] 订阅(50 美元/月)文本 bla bla

[另一个复选框] 提供 -30 美元添加自己的电子邮件)

所以基本上我有一个要订阅的复选框,其中包含该订阅的价格,并且在该复选框下,如果您选中该复选框,它应该在上面的订阅中编辑内联价格 -30$ 如果检查,如果不保持不变。

我如何使用 Ajax 或某种 JQuery/JS 函数来执行此操作,以根据该跨度的 ID 和第二个复选框的 ID 进行在线编辑?

JSfiddle

提前感谢大家!

4

2 回答 2

1

你知道你有绝对糟糕的非语义标记,不是吗?在做任何理智的事情之前,你需要使它有效和语义化。但是对于您目前的情况,这里是 jQuery 代码段:

var price = document.getElementById('price'),
    origPrice = parseInt(price.innerHTML),
    reducedPrice = parseInt(price.innerHTML) - 30;

$('#custom_test').change(function(ev) {
    if (ev.target.checked) {
        price.innerHTML = reducedPrice;
    } else {
        price.innerHTML = origPrice;
    }
});​

JSfiddle

在这里您可能希望如何更新您的标记:

<ul>
<li>
    <label class="desc main">
        Want to get email ($<span id="price">50</span>/month)
        <input type="checkbox" checked="" id="subscribe" name="subscribe">
    </label>
    Some text
</li>
<li>
    <label class="desc offer">
        -$30 subscribe
        <input type="checkbox"  id="custom_test" name="custom_test">
    </label>
    Please check this to add your own email
</li>
</ul>

JSfiddle

于 2012-11-30T10:12:57.550 回答
1

使用 jQuery 这就像

$('#custom_test').change(function(){
    if($(this).is(':checked')){
        $("#price").text($('#price').text()*1 - 30);    
    }else{
        $("#price").text($('#price').text()*1 + 30);   
    }
});

查看小提琴:http: //jsfiddle.net/kkfJF/29/

希望这可以帮助

于 2012-11-30T10:17:42.627 回答