2

custom.jsオーバーライドファイルを使用して、3ページの順序付けされていないリストに新しいリンクを追加する必要があります。システム要件に従ってjqueryを使用する必要があり、選択して挿入する方法を見つけることは本当に頭がおかしくなります。

メニューブロック自体は次のとおりです。

<div class="nav-block nav-block-logo">
  <div class="nav-block-body">
    <div class="nav-block-content">
      <div class="logo">
    <a href="/"><img src="logo.png"></a>
      </div>
      <h2>Contact Us</h2>
      <ul>
      <li class="active">
      <a href="/contact-us/">Overview</a>
      </li>
      <li>
      <a href="/contact-us/contact-us">Contact Us</a>
      </li>
      <li class="last-child">
      <a href="/contact-us/facilities-and-directions">Facilities &amp; Directions</a>
      </li>
      </ul>
      <a href="http://www.addthis.com/bookmark.php" class="bookmark-share addthis_button">Bookmark &amp; Share</a>
    </div>
  </div>
</div>

最後に新しいliリンクを追加する必要があります。after()とappend()を試しましたが、どちらも機能しませんでした。h2をターゲットにして、タイトルが「お問い合わせ」かどうかを確認する必要があるかもしれないと言われました。これを行う方法もわかりません。

私はjqueryに比較的慣れていません、そしてこれはちょっと最後の瞬間に私に捨てられました。どんな助けでも大歓迎です!

4

3 に答える 3

2

containsセレクターを使用できます。

var $li = $('<li>', {
  'id': 'id',
  'class': 'class'
}).html('<a href="herf">text</a>');

​$('h2:contains("Contact Us")').siblings('ul').append($li)​​​;    ​
// $('.nav-block-logo ul)').append($li)​​​;

http://jsfiddle.net/fj2K5/

于 2012-10-08T17:14:30.333 に答える
2

クラスターゲティングを使用しました。コンテンツを探すのに比べてかなり信頼性が高く、確かに高速です。また、最後の子のクラスも更新するようにしました。

var $list = $(".nav-block .nav-block-content ul:first");
$list.find(".last-child").removeClass("last-child"); 
var $li = $("<li>", {"class": "last-child"}).html('<a href="#">Our Blog</a>');
$list.append($li);

セレクターに関しては、一番簡単なものを入れましたが、必要に応じて具体的にすることもできます。例えば:

var $list = $(".nav-block .nav-block-content ul:first")
于 2012-10-08T17:19:40.163 に答える
1

li新しい要素がDOMオブジェクトであると仮定します。

$('div.nav-block-content ul').append(newLI);

の最後の子として追加しulます。

last-childこれがフィドルです(クラスを正しい要素に移動する方法もデモします):http: //jsfiddle.net/EwMSB/

于 2012-10-08T17:21:05.880 に答える