dポイントプレゼントキャンペーン実施中!

<ul id="category">
 <li><a href="~~">光熱費</a></li>
 <li><a href="~~">雑費</a></li>
</ul>

という様なかたちで家計簿のカテゴリーを作っているのですが

どの<li>が押されたかを判別してその押された中身のテキストを取得したい場合には

どうすればいいのでしょうか?

<select>なら「selectedIndex」で選択されたメニューの配列番号が取得できると思うのですが、<li>要素の場合には同じようなものがあるんでしょうか?

ちなみに、リスト<li>の個数は固定ではなくて、javascriptでカテゴリーを追加したり削除したり出来る様にしたいと思っています。

A 回答 (4件)

こんにちは。



jQueryを併用すればごく簡単な記述で実現できます。
各種ブラウザの違いも吸収してくれます。

====JavaScript
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9. …
<script type="text/javascript">
$().ready ( function() {
// id="category"のliのaがクリックされたら
$('#category li a').click ( function() {
// $(this)はそのクリックされた要素。その要素のテキストを取得
alert ( $(this).text() );
return false;
});
});
</script>

==== HTML

<body>
<div id="wrapper">
<ul id="category">
<li><a href="#">光熱費</li>
<li><a href="#">雑費</li>
</ul>
</div>
</body>
    • good
    • 0

気になるのですが、


>その押された中身のテキスト
 これは厳密に意味でA要素の内容と言う意味ですか?
<li><!-- LI要素の開始タグ -->
 <a href="ABC">光熱費</a><!-- A要素 href属性の値はABC A要素の内容は光熱費 -->
</li><!--LI要素の終了タグ -->

 それを取得して何に使うのでしょう。
    • good
    • 0

こんにちは。



jQueryを利用しないと面倒くさい記述になります。(笑)

/*@cc_on@*/
document./*@if(1)attachEvent('on'+@else@*/addEventListener(/*@end@*/ 'click', function(evt){
var t = evt./*@if(1)srcElement@else@*/target/*@end@*/;
var p = t.parentNode;
if(t.nodeName=="A" && p && p.parentNode.id=="category")
alert(t./*@if(1)innerText@else@*/textContent/*@end@*/);
}, false);
    • good
    • 0

こんにちは。



すみません、ミスってました。

<ul id="category">
<li><a href="#">光熱費</a></li>
<li><a href="#">雑費</a></li>
</ul>

ですね。

ちなみに上からの順番を取得したければ
alert ( $('#category li a').index(this) );

これで取得できます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!