JSFiddle:https://jsfiddle.net/coh1xr77/5/
我需要根据其确切内容删除使用选择器正确选择的<LI>
DOM元素。我的列表包含一组时间LI,当我点击按钮时,我的选择是根据确切的文本匹配删除列表中的第一个12:15am
。
我可以看到我的选择是正确的,因为我在警告框中得到[对象]引用,而不是&#34;未定义&#34;。
但是,此元素上的后续remove()不执行任何操作:元素仍然存在。
var myselection = '12:15am';
$('#remove').click(function() {
var current = $('.ui-timepicker-list li').filter(function() {
return $(this).text() === myselection;
});
alert('current = ' + current); // This works, element found
$(current).remove(); // This does nothing (or doesn't remove properly)
});
答案 0 :(得分:1)
您需要更改条件以检查li
innerText
是否以所选时间字符串开头。喜欢:$(this).text().indexOf(myselection) == 0
这里有更新的小提琴:https://jsfiddle.net/coh1xr77/11/
考虑到所有时间值在末尾都有括号内的相对时间字符串,您可以尝试基于该括号(
进行拆分,并与该字符串的第一部分进行比较。喜欢:$(this).text().split('(')[0].trim() == myselection
这里有小提琴:https://jsfiddle.net/coh1xr77/12/
如果您完全确定li
元素的结构不会更改,则可以使用childNodes
访问该文本。喜欢:$(this)[0].childNodes[0].textContent == myselection;
这里有更新的小提琴:https://jsfiddle.net/coh1xr77/14/