0

我的表单上有这部分 html:

<label class="ideal-radiocheck-label" onclick="">
    <input id="pagamento_8" class="_input " type="checkbox" onclick="half(this,value);" checked="" value="980" name="pagamento[]" style="position: absolute; left: -9999px;" autocomplete="off">
    <span class="ideal-check checked"></span>
    988 (980-980 €)
</label>

它是一个复选框输入按钮,它调用函数 half() 来进行类似调用下一个函数的操作:

function setClickedLabel(clicked,new_value){
    label_e=$(clicked).parent();
    label_t=$(label_e).text();
    labels_t=label_t.split('-');
    $(label_e).html(labels_t[0]+'-'+new_value+' €)');          <-- 1
    //$(label_e).text(labels_t[0]+'-'+new_value+' €)');        <-- 2
    //$(label_e).innerHTML = labels_t[0]+'-'+new_value+' €)';  <-- 3
}

在这里,我将更改标签“988 (980-980 €)”(最后一个 980)的一部分,“clicked”变量是您可以在标签元素内看到的输入对象。

使用报告的三种方法之一,我得到了 2 效果。Whit 1,2 它更改了标签,但它删除了输入元素。Whit 3 它什么也做不了。

我可以使用什么功能?我必须如何修复代码才能得到我需要的东西?无法更改 HTML。

也许另一种不附加.

德克萨斯州,j.

4

1 回答 1

0

修改jsfindle上的脚本留在了来自adeneo的评论中,我已经编写了该解决方案。也许可以是其他更好的解决方案。

function setClickedLabel(clicked,new_value,old_value){
    label = $(clicked).parent().contents().filter(function() {
        return this.nodeType === 3 && this.nodeValue.trim().length;
    }).get(0);

    label.nodeValue = label.nodeValue.replace(new RegExp("-"+old_value), "-"+new_value);
}
于 2013-10-28T14:52:58.483 回答