0

リストがあり、クリックしたリスト項目を太字にする関数を作成したいと考えています。これまでのところ、関数を作成してリスト項目に割り当てることができました。クリックすると、太字になりますが、1 つの項目だけです。各項目の設定方法がわかりません。

id を使用してアイテムを太字にすることもできましたが、リストには多くのアイテムが表示されます。その一つ一つに向き合えない。

html

<ul>
    <li>apple</li>
    <li>orange</li>
    <li>banana</li>
</ul>

JavaScript

var list = document.getElementsByTagName("li");

function markSelection() {
    if(list[0].style.fontWeight !== "bold") {
        list[0].style.fontWeight = "bold";
    } else {
        list[0].style.fontWeight = "normal";
    }
}

for (i = 0, len = list.length; i < len; i++){
    list[i].onclick = markSelection;
}

list[0] のみを太字にしています。クリックしたリスト項目を太字にするにはどうすればよいですか?

jsfiddle

4

3 に答える 3

3
function markSelection() {
    if(this.style.fontWeight !== "bold") {
        this.style.fontWeight = "bold";
    } else {
        this.style.fontWeight = "normal";
    }
}

for (i = 0, len = list.length; i < len; i++){
    list[i].onclick = markSelection;
}
于 2013-06-23T20:54:38.390 に答える
1

このようなクリックイベントのコンテキストを使用する必要があります。

function markSelection(evt) {
    var tar = evt.target;
    if(tar.style.fontWeight !== "bold")
        tar.style.fontWeight = "bold";
    else
        tar.style.fontWeight = "normal";
}

ここでフィドルを参照してください

于 2013-06-23T20:54:07.823 に答える