Javascript 如何在不指定速记else语句的情况下有条件地链接jQuery?
我有一个包含链接项或无链接项的列表,因此HTML如下所示:Javascript 如何在不指定速记else语句的情况下有条件地链接jQuery?,javascript,jquery,if-statement,filter,chaining,Javascript,Jquery,If Statement,Filter,Chaining,我有一个包含链接项或无链接项的列表,因此HTML如下所示: <ul> <li> <a href="#"> <img /> <h3>Hello</h3> <p>World</p> </a> </li> <li> <img /> <h3>Foo</h3> <p&g
<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>" );
//在listitems上的循环中
var项目=项目[i];
var containsLinks=item.children.length==1&&item.children[0]。标记名===A;
//这不管用。。。
var captioncontent=$(项).children()
.filter(包含链接?:空)
.非(“img”)
.wrap(“”);
//那也不是
var captioncontent=$(item).children()[containsLinks?children:null]()
.非(“img”)
.wrap(“”);
问题:在jQuery中,如何在速记if-else语句中“null”返回,或者如何在没有速记else语句的情况下进行条件链接 谢谢 这对我很有用:
var captionsContent = $( item )
.find(containsLinks ? "a *" : "*")
.not("img")
.wrap( "<div class='foo'></div>");
var-captioncontent=$(项目)
.find(包含链接?*:*”)
.非(“img”)
.wrap(“”);
简而言之,除非有更好的答案,否则我会接受的。为什么你不能通过一个糟糕的选择器?怎么办?(我想我现在学到了一些东西…:-)
$(item).children().has('a')。not('img')。wrap()
?@jAndy:不起作用。包装[“a”]
和[“h3”,“p”]
,当它应该包装[“h3”,“p”]
和[“h3”,“p”]
时。