0

我想问怎么改标题

<a href="#" title="here">name</a>

所以我想让链接名称自动复制到标题

所以如果我做这个代码

<a href="#">title link</a>

<a href="#" title="title link">title link</a>

如何在 php 或 javascript 中做到这一点

我知道一些 php

但需要在数据库链接中生成所有单词或为每个链接变量生成 $

有人可以帮我吗?

4

3 回答 3

1

我建议:

function textToTitle(elem, attr) {
    if (!elem || !attr) {
        // if function's called without an element/node,
        // or without a string (an attribute such as 'title',
        // 'data-customAttribute', etc...) then returns false and quits
        return false;
    }
    else {
        // if elem is  a node use that node, otherwise assume it's a
        // a string containing the id of an element, search for that element
        // and use that
        elem = elem.nodeType == 1 ? elem : document.getElementById(elem);
        // gets the text of the element (innerText for IE)
        var text = elem.textContent || elem.innerText;
        // sets the attribute
        elem.setAttribute(attr, text);
    }
}

var link = document.getElementsByTagName('a');

for (var i = 0, len = link.length; i < len; i++) {
    textToTitle(link[i], 'title');
}

JS 小提琴演示

由于提供简洁的 jQuery 选项似乎很传统:

$('a').attr('title', function() { return $(this).text(); });

JS 小提琴演示

于 2012-11-02T19:59:08.073 回答
1

如果您不想使用库:

var allLinks = document.getElementsByTagName('a');
for(var i = 0; i < allLinks.length; i++){
    allLinks[i].title = allLinks[i].innerHTML;
}

由于您想对页面上的一个元素执行所有这些操作,请考虑使用以下内容:

var allLinks = document.getElementById('myelement').getElementsByTagName('a'); // gets all the link elements out of #myelement
for ( int i = 0; i < allLinks.length; i++ ){
    allLinks[i].title = allLinks[i].innerHTML;
}

实际上,这与以前大致相同,但我们正在更改输入元素。

或者,假设您使用 jQuery,您可以执行以下操作:

$('a').each(function(){ // runs through each link element on the page
    $(this).attr('title', $(this).html()); // and changes the title to the text within itself ($(this).html())
});
于 2012-11-02T20:03:23.160 回答
0

在 JQuery 中,您可以通过了解当前标记并使用 .attr() 功能来更改属性。类似$('a').attr('title', 'new_title'); http://api.jquery.com/attr/

于 2012-11-02T19:57:20.523 回答