我需要像这样将“ a”元素嵌套在另一个“ a”元素中:
<a href="www.example.com" class="so-and-so">
<span>something</span>
<a href="www.another.example.com" class="another-link"><i class="an-icon"></a>
</a>
但是,我需要使用rails'link_to'帮助器而不是纯HTML。但是当我尝试像这样嵌套link_to帮助器时:
<%= link_to "www.example.com", class: "so-and-so" do %>
<%= content_tag :span, "something" %>
<%= link_to "www.another.example.com", class: "another-link" do %>
<%= content_tag :i, class: "an-icon" %>
<% end %>
<% end %>
它输出的HTML更像这样:
<a ...>
<span ...>
</a>
<a class="another-link" ...>...</a>
任何帮助将不胜感激。谢谢!
事实证明,rails毕竟输出的是正确的html,但浏览器无法正确解释它。链接内是否可能有链接?
事实证明,嵌套<a>
元素不是有效的HTML,因此浏览器只是试图“更正”我的代码。我最终只是将一个元素放置在另一个元素之外,并使用CSS使其看起来相同。
答案 0 :(得分:0)
因为您需要内部link
标记点指向控制器上的destroy动作。您可以通过第一个链接的click
事件触发操作。
$('#first_link').on('click', function() {
$.ajax({
type: "DELETE",
url: YOUR_SECOND_LINK ,
data: {id: YOUR_ID },
success: function(data, textStatus, jqXHR){...},
error: function(jqXHR, textStatus, errorThrown){...}
})
});
答案 1 :(得分:0)
这可以通过使用<template>
元素来实现,这将阻止浏览器在打开另一个锚标签之前关闭锚标签。
<%= link_to "www.example.com", class: "so-and-so" do %>
<%= content_tag :span, "something" %>
<template>
<%= link_to "www.another.example.com", class: "another-link" do %>
<%= content_tag :i, class: "an-icon" %>
<% end %>
</template>
<% end %>
之所以能解决这个问题,是因为我正在重构将锚标记嵌套到html.erb
文件中的Vue组件。每个单独的Vue组件都需要将其包装在<template>
标签中,因此我将其复制并瞧了!