0

アンカー リンクをクリックした後に ID を強調表示するために見つけたコードを使用しています。

<dd>これを変更して、代わりに定義リストの次のタグを強調表示したいと思います。

<dl class="mainfaq">
      <dt id="q1">Q1</dt>
         <dd><p>A1</p></dd>
      <dt id="q2">Q2</dt>
         <dd><p>A2</p></dd>
      <dt id="q3">Q3</dt>
         <dd><p>A3</p></dd>
</dl>

Lincoln Loopの jquery は次のとおりです。

    function highlight(elemId){
    var elem = $(elemId);
    elem.css("backgroundColor", "#ffffff"); // hack for Safari
    elem.animate({ backgroundColor: '#ffffaa' }, 1500);
    setTimeout(function(){$(elemId).animate({ backgroundColor: "#ffffff" }, 3000)},1000);
}

if (document.location.hash) {
    highlight(document.location.hash);
}
$('a[href*=#]').click(function(){
    var elemId = '#' + $(this).attr('href').split('#')[1];
    highlight(elemId);
});

通常の .next または .sibling の変更が機能しないようです。

4

2 に答える 2

1

次の隣接兄弟セレクターを使用します。

highlight(elemId + ' + dd');
于 2010-08-27T15:30:34.683 に答える
0

何を達成しようとしているのかは完全にはわかりませんが、同じページのリンクをクリックしてから、純粋な css ソリューションを使用できる対象の要素を強調表示しようとしていると仮定します。

:target + dd > p { /* css */ }

-ed要素の直接の兄弟であるpの直接の子孫である をターゲットにする必要があります。ddtargetdt

ただし、このアプローチにはいくつかの注意点があります。IE < 8 (およびおそらく 8 を含む) がそれを適切に実装するとは想像できません。そして、ほぼ確実に有効な doctype が必要になります。

jsbinでのデモ:http://jsbin.com/oqamu4

于 2010-08-27T15:39:44.493 に答える