如何使用javascript删除上一个元素

如何使用javascript删除上一个元素,javascript,jquery,Javascript,Jquery,在检查ff元件时,显示: <div class="col-md-9" style="padding-top:7px;"> <%= week_calendar number_of_weeks: 4, events: @food_plans do |date, food_plans| %> <%= date.day %> <%= link_to '+', food_plans_path(abc: date),:method=> :post,:s

在检查ff元件时,显示:

<div class="col-md-9" style="padding-top:7px;">
<%= week_calendar number_of_weeks: 4, events: @food_plans do |date, food_plans| %>
  <%= date.day %>
  <%= link_to '+', food_plans_path(abc: date),:method=> :post,:style=>"color:black;visibility:visible;float:right;font-weight:700;font-size:17px;",:class=>"linkplus"%>
  <% food_plans.each do |food_plan| %>
  <%if food_plan!=nil%>
  <%= link_to 'x', food_plan,:style=>"color:black;visibility:visible;float:right;font-weight:700;font-size:14px;",:class=>"linkx", method: :delete, data: { confirm: 'Are you sure?' } %>
  <%end%>
  <div >
  <!-- Displays proper collection select-->
  <%if food_plan.meal==nil%>
  <%=collection_select(:post, :food_plan_id, Meal.all, :name, :name, {prompt: '---'}, {:id=>"fsel", :onchange=>"window.location='#{meal_select_path(food_plan.id)}?meal=' + this.value"})%>
  <%else%>
  <%=collection_select(:post, :food_plan_id, Meal.all, :name, :name, {selected: food_plan.meal}, {:id=>"fsel", :onchange=>"window.location='#{meal_select_path(food_plan.id)}?meal=' + this.value"})%>
  <%end%>

  </div>
  <%end%>
<% end %>
</div>

我只想删除
linkplus
前面的
linkx

显示的代码删除
linkplus
元素之前或之后的元素,而不是这些元素本身

以下是如何完成您在上述引用声明中提出的要求:

<a style="color:black;visibility:visible;float:right;font-weight:700;font-size:17px;" class="linkplus" rel="nofollow" data-method="post" href="/food_plans?abc=2016-05-09">+</a>
<a style="color:black;visibility:visible;float:right;font-weight:700;font-size:14px;" class="linkx" data-confirm="Are you sure?" rel="nofollow" data-method="delete" href="/food_plans/7">x</a>

您确定
$('.linkplus')
有上一个元素吗?也许您可以为此添加html。请显示生成的html,而不是服务器端代码。您发布的代码将删除以前的元素,前提是它有一个。您可以(也应该)通过首先运行
console.log($('.linkplus').prev().length)来调试它
在其中放置一个断点,然后在控制台中尝试$('.linkplus').prev(),查看它返回的内容。在html中,第一个
标记是
linkplus
,因此它没有前面的元素。因此,
.prev().remove()
没有做任何事情,这与预期相符。您能否指出这是否回答了您的问题?
<script type="text/javascript">
    $(document).ready(function(){
        $('.linkplus').prev().remove();
    });
</script>
<%= link_to '+', food_plans_path(abc: date),:method=> :post,:style=>"color:black;visibility:visible;float:right;font-weight:700;font-size:17px;",:class=>"linkplus"%>
<div class="col-md-9" style="padding-top:7px;">
<%= week_calendar number_of_weeks: 4, events: @food_plans do |date, food_plans| %>
  <%= date.day %>
  <%= link_to '+', food_plans_path(abc: date),:method=> :post,:style=>"color:black;visibility:visible;float:right;font-weight:700;font-size:17px;",:class=>"linkplus"%>
  <% food_plans.each do |food_plan| %>
  <%if food_plan!=nil%>
  <%= link_to 'x', food_plan,:style=>"color:black;visibility:visible;float:right;font-weight:700;font-size:14px;",:class=>"linkx", method: :delete, data: { confirm: 'Are you sure?' } %>
  <%end%>
  <div >
  <!-- Displays proper collection select-->
  <%if food_plan.meal==nil%>
  <%=collection_select(:post, :food_plan_id, Meal.all, :name, :name, {prompt: '---'}, {:id=>"fsel", :onchange=>"window.location='#{meal_select_path(food_plan.id)}?meal=' + this.value"})%>
  <%else%>
  <%=collection_select(:post, :food_plan_id, Meal.all, :name, :name, {selected: food_plan.meal}, {:id=>"fsel", :onchange=>"window.location='#{meal_select_path(food_plan.id)}?meal=' + this.value"})%>
  <%end%>

  </div>
  <%end%>
<% end %>
</div>
<a style="color:black;visibility:visible;float:right;font-weight:700;font-size:17px;" class="linkplus" rel="nofollow" data-method="post" href="/food_plans?abc=2016-05-09">+</a>
<a style="color:black;visibility:visible;float:right;font-weight:700;font-size:14px;" class="linkx" data-confirm="Are you sure?" rel="nofollow" data-method="delete" href="/food_plans/7">x</a>
$('.linkx').prev('.linkplus').remove();