删除兄弟DIV然后获取父元素的文本

时间:2013-08-28 15:48:41

标签: jquery

这应该很简单我确定但我一直都弄错了。

我的标记如下:

<li>
    <input type="checkbox" name="students" value="12345" />
    &nbsp;
    Student Name
    <div>
        [F:0|I:0]
    </div>
</li>

当用户点击该复选框时,我想从LI中获取一些信息并创建一个新的,重新格式化的LI以附加到其他位置。

$('input[name=students]').click(function() {
    var $ele = $(this).parent('li'); // there's my parent LI
    $ele.remove('div'); // get rid of the div within this LI
    var text = $ele.text(); // display the remaining text

    alert(text); // all the text, including the text from the div???
});

正如你在最后一行所看到的,我得到所有的文本(包括[F:0 | I:0]等,我不想要)。我做错了什么?

http://jsfiddle.net/nen7a/

2 个答案:

答案 0 :(得分:2)

应该是

$ele.children('div').remove();

.remove()从dom中删除匹配元素集。您需要在必须删除的元素集上调用.remove()方法 - 在本例中为div元素

演示:Fiddle

答案 1 :(得分:1)

您应该指定要删除的内容,删除不会使用

等参数
.remove(something)

相反,它是一个像这样的元素的方法

element.remove()

因此您必须指定要删除的元素

$ele.find('div').remove('div');

http://jsfiddle.net/nen7a/1/