将列表项替换为 jQuery 除了第一个,最后一个

Replace list items with jQuery except first, last

我有一个项目列表,其中第一个和最后一个用作导航按钮,因此当 ajax 加载新内容时,必须用检索到的新 HTML 替换中间项目。

<ul>
  <li class="photonav">Older Photos</li>
  <li class="photo">Item to replace</li>
  <li class="photo">Item to replace</li>
  <li class="photo">Item to replace</li>
  <li class="photonav">Newer Photos</li>
</ul>

带有 class photo 的物品必须替换为刚刚获得的 HTML 物品(预装 HTML 列表物品)。 photonav 项必须保持不变。

我知道我可以使用 .photo 选择器删除它们,但是如何在导航项之间放置新的 HTML 代码?

您只需选择并删除内部元素即可删除它们:

$('.photo').remove();

那时你有这个:

<ul>
  <li class="photonav">Older Photos</li>
  <li class="photonav">Newer Photos</li>
</ul>

那么你的下一步是在第一个 li 之后插入内容,对吗?然后在first()元素中插入内容after()

$('.photonav').first().after(someContent);

您可以在列表中添加 <div>

<ul>
  <li class="photonav">Older Photos</li>
  <div class="insert">
  <li class="photo">Item to replace</li>
  <li class="photo">Item to replace</li>
  <li class="photo">Item to replace</li>
  </div>
  <li class="photonav">Newer Photos</li>
</ul>

我觉得你可以

$('.photo').remove();
$('.photonav').last().before(newcontent)