0

我敢肯定,这应该很简单,但我一直弄错了。

我的标记如下:

<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/

4

2 回答 2

2

它应该是

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

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

演示:小提琴

于 2013-08-28T15:49:48.053 回答
1

您应该指定要删除的内容,remove 不带参数,例如

.remove(something)

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

element.remove()

所以你必须指定要删除的元素

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

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

于 2013-08-28T15:54:27.513 回答