2017-04-19 4 views
-2
<div> 
<span>A</span> 
<span>B</span> 
<span>C</span> 
<span>D</span> 
</div> 

ユーザーがスパンをクリックした場合、そのスパンとそのdiv内のすべての先行スパンにスタイル(テキストカラー)を適用する必要があります。また、以前にクリックされたスパン行為を削除する。スパンにはクラスとIDはありません。div内のクリックスパンを取得し、JQueryを使用して前のスパンと後継スパンを変更するにはどうすればよいですか?

私はこれをJ Queryを使用してどのように達成できますか?

+2

使用 '.prev()'と '.next()' – guradio

+0

この+ .siblings() 'とthis'コンテキストは –

+1

ことが期待されているとあなたは、少なくとも試みていますこれをコードしてください。スタックオーバーフローはコードを書くサービスではありません。私はいくつか[**追加の研究**]を行うことをお勧めします(http://meta.stackoverflow.com/questions/261592/how-much-research-effort-is-expected-of-stack-overflow-users) Googleを介して、またはSOを検索して、試みてください。それでも問題が解決しない場合は、**あなたのコード**に戻り、あなたが試したことを説明してください。 –

答えて

1

クリックした要素のすべての兄弟要素を選択するには、prevAll()を使用できますが、クリックした要素を含めるには、andSelf()を追加する必要があります。 spanをクリックするたびに、最初にすべてspanのバックグラウンドを削除する必要があります。

$('div span').click(function() { 
 
    $('div span').css('background', 'none'); 
 
    $(this).prevAll().andSelf().css('background', 'red') 
 
})
body { 
 
    padding-top: 10px; 
 
} 
 
span { 
 
    cursor: pointer; 
 
    padding: 10px; 
 
    border: 1px solid black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    <span>A</span> 
 
    <span>B</span> 
 
    <span>C</span> 
 
    <span>D</span> 
 
</div>

+0

うわー、あなたはいつもそれを解決するために何か新しい、素晴らしい、簡単な方法を学びます。共有してくれてありがとう。 – ProgrammerV5

+0

@ ProgrammerV5よろしくお願いします。 –

0

チェックthisフィドルコード場合に役立ちます。

JS:

$('span').click(function(){ 
    $(this).siblings().css('color','') 
    $(this).css('color','red'); 
    $(this).prevAll().css("color", "red"); 
}); 
関連する問題