为什么jQuery .text取代了整个范围?

时间:2011-11-17 23:41:02

标签: javascript jquery html

我有以下HTML

<p><input id="revenue" type="text" value="100000" /><span id="howmuch"><a href="" class="ka_button small_button small_cherry" target="_self" style="opacity: 1; "><span>How Much?</span></a></span></p>
<p id="howmuchpercent">You save <span id="savingspercent">$<span id="howmuchspan">23000.00</span>*</span></p>

以下Javascript

jQuery(document).ready(function(){
    jQuery('span#howmuch a').click(function(e){
        e.preventDefault();
        var revenue = jQuery('input#revenue').val();
        var savingsonrevenue = revenue * 0.23;
        jQuery('span#howmuchspan').text(savingsonrevenue.toFixed(2));
    });
});

当我因某种原因点击How Much?按钮而不是替换span#howmuchspan的内容时,它正在替换整个范围,从而产生以下HTML

<span id="savingspercent">57500.00</span>

而不是

<span id="savingspercent">$<span id="howmuchspan">57000.00</span>*</span>

3 个答案:

答案 0 :(得分:7)

我在JSFiddle上尝试了你的代码,它运行得很好:http://jsfiddle.net/2FQ4X

答案 1 :(得分:1)

你可能在其他地方有代码删除了savingspercent的内容。我使用您发布的代码创建了一个jsFiddle,它按预期工作:

http://jsfiddle.net/sYA7j/

修改

页面底部有一些类似的代码(第451-458行)。删除它,你应该全部设置:

jQuery(document).ready(function(){
    jQuery('span#howmuch a').click(function(e){
    e.preventDefault();
    var revenue = jQuery('input#revenue').val();
    var savingsonrevenue = revenue * 0.23;
    jQuery('p#howmuchpercent span').text(savingsonrevenue.toFixed(2));
    });
});

创建了一个jsFiddle来测试它,这就是你的问题。见这里:http://jsfiddle.net/JDqBS/

答案 2 :(得分:0)

您确定项目中的HTML标记与您指定的示例相似吗?可能是未封闭的标签或某事。