我想要做的是首先检查是否在无序列表中第一个元素是图像,如果是图像,则将第一个孩子移动到第二个孩子或者如果它是&#39 ;更容易将第二个孩子移到第一个孩子身上。
<ul>
<li><p>text</p></li>
<li><img src="test.img" alt=""></li>
<li><p>text2</p></li>
</ul>
<ul>
<li><p>text</p></li>
<li><img src="test.img" alt=""></li>
<li><p>text2</p></li>
</ul>
然后完成的结果将如下所示:
// Attempt 5
for (int n = 0; n < 99; ++n)
{
col = Settings.ForeignKeyName(tableNameHumanCase, foreignKey, fkName, relationship, 5);
if (n > 0)
{
col += n;
}
if (ReverseNavigationUniquePropName.Contains(col))
continue;
if(addReverseNavigationUniquePropName)
{
ReverseNavigationUniquePropName.Add(col);
}
return col;
}
我如何专门定位第一个列表并移动那个而不移动第二个列表?那么只针对第一个无序列表列表项并根据if语句移动它?我尝试过使用insertBefore但是我觉得我可能错了吗?
如果可能的话,不要使用jquery,并感谢任何帮助!
答案 0 :(得分:0)
您可以遍历所有<ul>
元素。检查第一个<li>
子项是否有<img>
标记。如果是,则在第二个<li>
之后先移动<li>
。
请查看下面的代码示例:
$(function() {
$('ul').each(function() {
var $first = $(this).children().first();
// If first <li> has an <image> child
if ($first.has('img').length) {
// Move the <li> to second position
$first.insertAfter($first.next())
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><img src="test.img" alt="IMG"></li>
<li><p>text</p></li>
<li><p>text2</p></li>
</ul>
<hr>
<ul>
<li><p>text</p></li>
<li><img src="test.img" alt="IMG"></li>
<li><p>text2</p></li>
</ul>