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) の一部を変更します。「クリックされた」変数は、ラベル要素内に表示される入力オブジェクトです。

報告された3つの方法の1つを使用すると、2つの効果が得られました。Whit 1,2 ラベルを変更しますが、入力要素を削除します。Whit 3 それは何もしません。

どのような機能を使用できますか? 必要なものを取得するには、コードをどのように修正する必要がありますか? HTMLは変更できません。

追加せずに別の代替案を作成することもできます。

tnx、j。

4

1 に答える 1

0

adeneoからのコメントに残されたjsfindleのスクリプトを適応させて、その解決策を書きました。多分他のより良い解決策かもしれません。

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 に答える