我在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下拉框,任何想法如下为什么它只删除链接而不是下拉框?
答案 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;
});
});
重点是:
onclick
属性。不引人注目的Javascript是关于不用Javascript乱丢你的标记; this
已设置为已点击的锚点。没有必要传递它;和prev()
仅匹配前一个兄弟姐妹。如果锚点和选择之间存在某些内容,则它将无效,这就是我将其更改为prevAll()
并添加:first
以获取第一个的原因。我不是100%肯定这个的顺序。您可能需要:last
。