jQuery Filter ANCHOR标签

时间:2013-09-17 05:42:15

标签: php jquery

$(document).ready(function() {
    $(".table_class table td").hover(function() {
        $(".table_class table td a").filter(function() {
         showinTitle($(this));
        });
    });
});

function showinTitle($Object){
    $Object.prop('title', $Object.html());
}

我需要的意思是,对于长文本,我已经给出了溢出隐藏和文本溢出省略号,

当我悬停意味着所有<td>值在悬停时都需要显示在标题中,<a>标记除外

2 个答案:

答案 0 :(得分:0)

function showinTitle($Object){
    var title = $Object.html();
    var wrapped = $("<div>" + title + "</div>");
    wrapped.find("a").remove();
    $Object.prop('title', wrapped.html());
}

答案 1 :(得分:0)

jQuery filter函数用于根据条件从集合中删除元素,因此您不应该将它用于此问题。

如果您的td元素的内容只是带有一些锚标记的文字,并且您希望为"title with link"这样的标识显示标题<td>title with <a>link</a></td>,那么您可以使用生成标题的td文本:

$(document).ready(function() {
  $(".table_class table td").each(function() {
    $(this).prop('title', $(this).text())
  })
})

如果你想让每个td的标题显示除锚标记内容之外的所有内容(也就是说,如果你想为"title with"这样的td显示标题<td>title with <a>link</a></td>,然后你需要做一些类似于Arvind建议的事情:

$(document).ready(function() {
  $(".table_class table td").each(function() {
    var contents = $("<td>" + $(this).html() + "</td>");
    contents.find("a").remove();
    $(this).prop('title', contents.text())
  })
})

当文档加载时,它循环遍历每个td,并创建它的临时克隆。然后从克隆中删除锚标记,并将td的标题设置为克隆的(已清理的)内容。