Javascript 删除前2个内容,标签
除了第二个标签中的内容外,我如何删除前两个标签中的内容 我的结构是这样的:Javascript 删除前2个内容,标签,javascript,jquery,Javascript,Jquery,除了第二个标签中的内容外,我如何删除前两个标签中的内容 我的结构是这样的: <ul> <li> Text <label>1#</label> <input type="text" value="" /> </li> <li> Text <label>2#</label> <in
<ul>
<li>
Text <label>1#</label> <input type="text" value="" />
</li>
<li>
Text <label>2#</label> <input type="text" value="" />
</li>
<li>
Text <label>3#</label> <input type="text" value="" />
</li>
<li>
Text <label>4#</label> <input type="text" value="" />
</li>
<li>
Text <label>5#</label> <input type="text" value="" />
</li>
<li>
Text <label>6#</label> <input type="text" value="" />
</li>
<li>
Text <label>7#</label> <input type="text" value="" />
</li>
</ul>
必须删除代码并保持这种状态:
<ul>
<li>
<label>2#</label>
</li>
<li>
Text <label>3#</label> <input type="text" value="" />
</li>
<li>
Text <label>4#</label> <input type="text" value="" />
</li>
<li>
Text <label>5#</label> <input type="text" value="" />
</li>
<li>
Text <label>6#</label> <input type="text" value="" />
</li>
<li>
Text <label>7#</label> <input type="text" value="" />
</li>
</ul>
我的英语糟透了,我希望你能理解我的问题,这对每个人来说都很清楚。这里有一个可能只是一个关于JQuery的快速课程,但我会选择第三个选项,请参见以下内容:
$('ul li:nth-child(1)').remove();
$('ul li:nth-child(1)').remove(); // child(1) ALSO, BECAUSE #2 HAS NOW BECOME #1 !
// OR MODULAR :
for (i=1; i < 3; i++)
{
$('ul li:nth-child('+i+')').remove(); // OBVIOUSLY #3 AND #4 ARE REMOVED AS WELL.
}
// YOU CAN CAPTURE AND STORE THE LABEL CONTENT, ERASE THE CONTENT OF THE LI, AND PUT BACK THE LABEL :
for (i=1; i < 3; i++)
{
var label_content = $('ul li:nth-child('+i+') label').html(); // GETTER
$('ul li:nth-child('+i+')').html(''); // SETTER (set to empty)
$('ul li:nth-child('+i+')').html('<label>'+label_content+'</label>'); // REINJECT THE LABEL
}
在这里演奏小提琴:
但看起来您只是想隐藏显示:无您的输入。。。如果是这样,您不妨:
for (i=1; i < 3; i++)
{
$('ul li:nth-child('+i+') input').css('display':'none');
$('ul li:nth-child('+i+') input').attr('disabled'); // JUST TO MAKE SURE THIS INPUT IS NOT GOING SUBMITTED
}
或者,第三种选择,清洁剂:
for (i=1; i < 3; i++)
{
$('ul li:nth-child('+i+') input').remove(); // OBVIOUSLY #3 AND #4 ARE REMOVED AS WELL.
}
这里有一个关于JQuery的可能只是一个简单的教训,但我会选择第三个选项,请参见以下内容:
$('ul li:nth-child(1)').remove();
$('ul li:nth-child(1)').remove(); // child(1) ALSO, BECAUSE #2 HAS NOW BECOME #1 !
// OR MODULAR :
for (i=1; i < 3; i++)
{
$('ul li:nth-child('+i+')').remove(); // OBVIOUSLY #3 AND #4 ARE REMOVED AS WELL.
}
// YOU CAN CAPTURE AND STORE THE LABEL CONTENT, ERASE THE CONTENT OF THE LI, AND PUT BACK THE LABEL :
for (i=1; i < 3; i++)
{
var label_content = $('ul li:nth-child('+i+') label').html(); // GETTER
$('ul li:nth-child('+i+')').html(''); // SETTER (set to empty)
$('ul li:nth-child('+i+')').html('<label>'+label_content+'</label>'); // REINJECT THE LABEL
}
在这里演奏小提琴:
但看起来您只是想隐藏显示:无您的输入。。。如果是这样,您不妨:
for (i=1; i < 3; i++)
{
$('ul li:nth-child('+i+') input').css('display':'none');
$('ul li:nth-child('+i+') input').attr('disabled'); // JUST TO MAKE SURE THIS INPUT IS NOT GOING SUBMITTED
}
或者,第三种选择,清洁剂:
for (i=1; i < 3; i++)
{
$('ul li:nth-child('+i+') input').remove(); // OBVIOUSLY #3 AND #4 ARE REMOVED AS WELL.
}
这将完全删除第一个列表项,然后删除第二个列表项中除标签以外的所有节点
这将完全删除第一个列表项,然后删除第二个列表项中除标签以外的所有节点
这可能是您的解决方案:
$('ul li label').each(function() {
$(this).parent().empty().append($(this));
});
Fiddle:这可能是您的解决方案:
$('ul li label').each(function() {
$(this).parent().empty().append($(this));
});
Fiddle:在您的示例中,您删除了整个第一个块。这就是你想要的吗?你没有删除第二个标记,你说你只想保留它的内容?@j08691,@blex Yes,毫无例外地删除了第一个块,而异常只保留第二个块。在你的示例中,你删除了整个第一个块。这就是你想要的吗?你没有移除第二个标签,你说你只想保留它的内容?@j08691,@blex Yes,毫无例外地删除第一个已满数据块,并且该异常仅保留在的第二个数据块。如果我有2个,并且必须首先执行此操作?@user3743128$'ul:eq0 li:nth-child1'@user3743128 Yes如果您只想应用于第一个ul,请添加一个筛选器。否则,它将适用于所有人。在所有回答问题的人中,这把小提琴+1是唯一理解问题的人。有什么问题:$'ul li:nth-child1 input'。删除?如果我有2个,并且必须首先这样做?@user3743128$'ul:eq0 li:nth-child1'@user3743128 Yes如果您只想应用于第一个ul,请添加一个筛选器。否则,它将适用于所有人。在所有回答问题的人中,这把小提琴+1是唯一理解问题的人。有什么问题:$'ul li:nth-child1 input'。删除?