如何设置<a> link inside a <span> that is in a </span></a> <a>?</a>

时间:2011-05-30 18:03:29

标签: jquery hyperlink href html

这是我的代码

  <a href="http://linkurl" class="link" title="sometitle">
 text link 

 <span class="hidden-tooltip-data" style="display: none;"> <a
 href="http://www.google.ca"> my link here destroy everything </a 
</span>
  </a>

我在这里使用Poshy脚本

       $('.link').each(function() {
      var tooltip = $(".hidden-tooltip-data",this).html();
      $(this).attr("title","");
    $(this).poshytip({
    content: function(updateCallback) {
        return tooltip;
             }
         });
      });

4 个答案:

答案 0 :(得分:4)

嵌套链接是非法的the HTML 4.01 Specification中明确提到了这种情况。

答案 1 :(得分:1)

首先,你不应该这样做。原因在于,孩子a被完全忽略,因为它在父a下。

我建议您制作一个span,其中包含两个不同的a标记,其中包含所需数量span

答案 2 :(得分:1)

不应将链接放在另一个链接中。

答案 3 :(得分:0)

默认情况下,Poshytip会读取元素的title属性并将其用作工具提示内容。但是,您希望在提示中包含一个链接,如果JavaScript被关闭(并且无法访问),将HTML放在title中会显得很难看。

您最好的方法是为低级浏览器添加纯文本title,并在data属性中包含增强的提示内容(显式转义标记):

<a href="..." class="link" title="basic content" data-tip="enhanced content &lt;a href=&quot;...&quot;&gt;link&lt;/a&gt;">...</a>

$('.link').each(function() {
    $(this).attr('title','').poshytip({ content: $(this).data('tip') });
});

在类似的属性中包含标记显然会有点混乱,因此如果您的提示具有通用格式,则最好将URL包含为data属性并在脚本中构建标记。

$('.link').each(function() {
    $(this).attr('title','').poshytip({ content: '<a href="' + $(this).data('tiplink') + '">link</a>' });
});