0

我有一个包含链接或无链接项目的列表,因此 HTML 如下所示:

<ul>
 <li>
   <a href="#">
     <img />
     <h3>Hello</h3>
     <p>World</p>
   </a>
 </li>
 <li>
   <img />
   <h3>Foo</h3>
   <p>Bar</p>
 </li>
</ul>

我正在尝试将所有内容都包含在不是图像的列表项(或列表项链接)中。

这是我正在做的事情:

// inside a loop over the listitems
var item = items[i];
var containsLinks = item.children.length === 1 && item.children[0].tagName === "A";

// this does not work...
var captionsContent = $( item ).children()
    .filter(containsLinks ? "a" : null)
    .not("img")
    .wrap( "<div class='ui-captions-content'></div>" );

// neither does that
var captionsContent = $( item ).children()[containsLinks ? children : null]()
    .not("img")
    .wrap( "<div class='ui-captions-content'></div>" );

问题
如何在 jQuery 中的简写 if-else 语句中“为空”返回,或者如何在没有简写 else 语句的情况下进行条件链接?

谢谢!

4

1 回答 1

1

这对我有用:

var captionsContent = $( item )
  .find(containsLinks ? "a *" : "*")
  .not("img")
  .wrap( "<div class='foo'></div>");

简短,除非有更好的答案,否则我会接受它。

于 2013-06-25T13:07:13.077 回答