0

在示例中:

<ul>
<li>text <span>more text</span></li>
</ul>

我想<li>通过单击其中的内容<span>来删除,<li>例如:

$(this).parent().remove()

什么被认为parent()是 a <span>in an <li>

解决方案

上面的代码有效,因此似乎确实如此(即,<li>在这种情况下, the 是 的父级<span>)。

4

4 回答 4

2

你的代码是这样的

<ul>
    <li>text 
       <span class='delete_link'>more text</span>
    </li>
</ul>

<li>是 的父级<span>。所以

$(".delete_link").click(function() {
   $(this).parent().remove()
});

然后结果为空<ul>

<ul>
</ul>

没有<li>

于 2013-08-14T05:42:47.543 回答
1

跨度的父级是包含它的 li:-

这是为此工作的小提琴:-

http://jsfiddle.net/eH27D/

<ul>
<li>text <span id="my-span">more text</span></li>
</ul>

这是获取父级,然后将其删除。

console.log($("#my-span").parent());
$("#my-span").parent().remove();
于 2013-08-14T05:42:15.690 回答
0

由于li是 的父级span,因此您执行的代码将删除li及其子级 ( span)。

如果您想保留span元素。

尝试这个

var s = $('span').detach(); // detach it
$('ul').append(s);          // append it to ul
$('li').remove();           // then remove the li
于 2013-08-14T05:48:56.247 回答
0

你的父母LI _

<ul>
<li>text <span id=span>more text</span></li>
</ul>

$("#span").parent().remove();

将删除span的父li及其所有孩子

所以如果你有

<ul>
    <li>
         <span id=span>more text</span>
         <span>more text</span>
         <span>more text</span>
    </li>
</ul>

申请:

$("#span").parent().remove();

将输出:

<ul></ul>
于 2013-08-14T05:49:51.220 回答