使用JQuery删除以前的标签?

时间:2009-08-18 11:13:35

标签: jquery

我在html link标签元素旁边有一个下拉框,链接元素如下:

<a href="#" class="delete" onclick="remove(this)"> Delete</a>

它有一个onclick属性设置为下面的javascript函数:

 `function remove(obj) {

    $(obj).prev('select[name=estateDropDownList]').remove();
    $(obj).remove();
}`

现在它删除链接很好,但它不会删除PREVIOUS下拉框,这个下拉框有一个名称“estateDropDownList”,我只想让它只使用JQuery中的prev()删除THAT下拉框,任何想法如下为什么它只删除链接而不是下拉框?

1 个答案:

答案 0 :(得分:2)

我会先改变一些事情:

<select name="estateDropDownList" class="estate">
  ...
</select>
<a href="#" class="delete">Delete</a>

然后:

$(function() {
  $("a.delete").click(function() {
    $(this).prevAll("select.estate:first").remove();
    $(this).remove();
    return false;
  });
});

重点是:

  1. 请勿使用onclick属性。不引人注目的Javascript是关于不用Javascript乱丢你的标记;
  2. 尽量不要使用属性选择器。他们不快。给相关元素一个类;
  3. this已设置为已点击的锚点。没有必要传递它;和
  4. prev()仅匹配前一个兄弟姐妹。如果锚点和选择之间存在某些内容,则它将无效,这就是我将其更改为prevAll()并添加:first以获取第一个的原因。我不是100%肯定这个的顺序。您可能需要:last