2

クリックされたliに含まれるテキストに変更する #percent 量を取得しようとしています。誰かが私のコードを修正するのを手伝ってください、ありがとう!

<div id="percentchooser">
<ul>
    <li>25</li>
    <li>30</li>
    <li class="selectedpercentage">35</li>
    <li>40</li>
    <li>45</li>
    <li>50</li>
</ul>
<div id="percentage"><span id="percentamount">35</span><span id="percentsign">%</span>

</div>

$("#percentchooser li").click(function () {

    var percentage = $(this).html();

    $("#percentchooser li").removeClass("selectedpercentage");
    $(this).addClass("selectedpercentage");

    $("#percentageamount").html(percentage);


});
4

3 に答える 3

3

間違った ID を参照しているようです。スパンの ID はpercentamountHTML の例にありますがpercentageamount、スクリプトのように参照しています。

$("#percentchooser li").click(function () {
    var percentage = $(this).html();

    $("#percentchooser li").removeClass("selectedpercentage");
    $(this).addClass("selectedpercentage");

    $("#percentamount").html(percentage);
});

変更されたものは機能しているようです。


デモ-#percentamount代わりに


于 2013-01-29T23:03:16.630 に答える
0

ここにはパーセンテージの金額IDが表示されないので、これでうまくいくはずです

   $("#percentamount").html(percentage);
于 2013-01-29T23:05:32.900 に答える
0

jQuery を使用しないことを考えたことはありますか? この状況では不要です。

(function() {
  var chooser = document.getElementById('percentchooser'),
      selected = (function() {
        var li = chooser.children[0].children, len = li.length, i;
        for(i=0;i<l;i++) if(li[i].className == "selectedpercentage") return li[i];
      })(), target = document.getElementById('percentamount');
  chooser.onclick = function(e) {
    e = e || window.event;
    var t = e.srcElement || e.target;
    if( !t.tagName) t = t.parentNode; 
    if( t.tagName.toLowerCase() == "li") {
      selected.className = "";
      t.className = "selectedpercentage";
      target.firstChild.nodeValue = t.firstChild.nodeValue;
    }
  };
})();
于 2013-01-29T23:06:40.403 に答える