我想定位最后一个LI并将其转换为另一个元素。
例如我有HTML标记如下
<ol class="questions">
<li>Element</li>
<li>Element</li>
<li>Element</li>
</ol>
但我想这样做,所以列表中的最后一个元素变成DIV然后列表元素在它之前关闭
<ol class="questions">
<li>Text</li>
<li>Text</li>
</ol>
<div class="changed-div">Text</div>
我怎么能用javascript做到这一点?
我已经开始使用诸如
之类的代码了$('</ol>'}).insertBefore('.questions li:last-child');
谢谢你们
答案 0 :(得分:2)
由于很明显你正在使用jQuery,你可以这样做:
var lastElement = $("ol.questions li:last"); //Store the last element in a variable
$('ol.questions').after('<div class = "changed-div">' + lastElement.html() + '</div>'); //Create a new div after the list with the contents of the last element
lastElement.remove(); //Delete the last element
答案 1 :(得分:0)
选择器有时可能会失败,我建议选择li标签,如此
var questionArray = $('.questions').find('li');
这将在你的ol中创建所有li的数组,以获得最后一个
var lastQuestion = questionArray[questionArray.length-1];
现在你有一个变量中的最后一个问题,现在你可以提取文本并附加到你想要的任何内容
var changed-div = $('<div/>').addClass('changed-div').append(lastQuestion.html());
$('.questions').insertAfter(changed-div);
并从ol中删除li
lastQuestion.remove();
这可能需要几个步骤,但是为了向ol和div标签添加和删除项目提供更多控制权