<strong>title</strong>
<cite>...</cite>
<cite>...</cite>
...
<a>ank</a>
如果没有$el
,我想在<cite>
后面的<strong>
后面追加一个新元素<cite>
,然后在$el
之后追加<strong>
{{1}}
答案 0 :(得分:0)
var cites = $('strong').nextAll('cite');
/*Incorrect
if (cites.length==0) $('strong').append($el);
else cites.filter(':last').append($el);
*/
记事本代码。对不起,我犯了一个错误。
修改强> if-else可以更改为:
$el.insertAfter(cites.length==0?$('strong'):cites.filter(':last'));
答案 1 :(得分:0)
试试这个:
$last_cite = $("strong ~ cite:last");
if ($last_cite.length > 0) {
$last_cite.after($el);
} else {
$("strong").after($el);
}
[编辑]
〜选择所有兄弟元素 遵循“prev”元素,有 同一个父母,并匹配 过滤“兄弟姐妹”选择器。 source
[/编辑]
或者在一行中,但不是更短,更不可读:
$el.insertAfter($last_cite.length > 0 ? $last_cite : $("strong"));
<强>更新强>
更短的方法:
$el.insertAfter($("strong, strong ~ cite:last").eq(-1))
答案 2 :(得分:0)
var anchor = $('strong');
while (anchor.next('cite').length) {
anchor = anchor.next();
}
anchor.after($el);