我的表单上有这部分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无法更改。
可能是另一种没有appending的替代方案。
TNX, 学家
答案 0 :(得分: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);
}