有关javascript的问题; Html生成和搜索标签的当前网页

时间:2010-12-15 20:59:09

标签: javascript html

嗨,我有3个问题,如果你有这个简单的网站

<html> <head> </head> <body> <table>
<tr> <td><a
href="http://www.hello1.com">www.hello1.com</a></td>
</tr> <tr> <td><a
href="http://www.hello2.com">www.hello2.com</a></td>
</tr> </table> </html>

问题1)

如果我决定点击链接号2(www.hello2.com),这是否存储在某种变量中?

我知道这是存储当前网址而不是您点击的网址

window.location.href;

问题2) 你如何搜索你的文件,说我想搜索这个网站并将所有链接存储在这样的javascript数组中

    var myArray = [];

searchThisWebSiteForURLS()//Do this function that I don't know to write that search this htmlsite for url's

var myArray = [ 'http://www.hello1.com', 'http://www.hello2.com'];//This is the reslt after that the function has been executed

问题3) 我想写出这些链接。假设我有另一张这样的表

 <html> <head> </head> <body> <table>
    <tr> <td><a
    href="X">X</a></td>
    </tr> <tr> <td><a
    href="Y"></a>Y</td>
    </tr> </table> </html>

Where X = http://www.hello1.com
And Y = http://www.hello2.com

当然,它应该与数组中的元素一样多,如此

 <html> <head> </head> <body> <table>
    <tr> <td><a href="X">X</a></td></tr>
    <tr> <td><a href="Y"></a>Y</td></tr>
    <tr> <td><a href="Z">Z</a></td></tr>
    <tr> <td><a href="A">A</a></td></tr>
    <tr> <td><a href="B">B</a></td></tr>
    </table> </html>

其中Z,A,B是数组中的元素3,4,5

 var myArray = [ 'http://www.hello1.com', 'http://www.hello2.com','http://www.hello3.com','http://www.hello4.com','http://www.hello5.com'];

EDIT!--------------------------------------------- -----------------------------

哇,非常感谢,大家,非常感谢!我还有一个关于链接的问题,比较两个链接时,说数组看起来像这样

var pageLinks = ['http://www.example.at', 'http://www.example2.at', 'http://www.someothersite.at'];

并说用户已按下示例“http://www.example.at”链接,然后我想创建包含类似链接的表。所以我做这样的事情

function checkForSimilarLink(theLinkToCompareWith){// in this case theLinkToCompareWith = "http://www.example.at"
    var numLinks = pageLinks.length;

    for(var i = 0; i < numLinks; i++) {
       //Check if numLinks[i]== theLinkToCompareWith* 
    }
}

那你怎么写这个比较函数?在这种情况下,我们可以考虑

“http://www.example.at”和“http://www.example1.at”“相同”,而“http://www.someothersite.at”显然不是

再次感谢:)

3 个答案:

答案 0 :(得分:2)

我不明白问题1,但这里有问题2和问题3:

问题2:

var pageLinks  = []; 
var anchors    = document.getElementsByTagName('a'); 
var numAnchors = anchors.length; 
for(var i = 0; i < numAnchors; i++) {
    pageLinks.push(anchors[i].href);
}
//now pageLinks holds all your URLs

问题3:

// say pageLinks holds your desired URLs
var pageLinks = ['http://www.example.at', 'http://www.example2.at', 'http://www.example3.at'];

// create an empty table
var table     = document.createElement('table');

// ... and it's tbody
var tbody     = document.createElement('tbody'); 

// loop through your URLs
var numLinks = pageLinks.length; 
for(var i = 0; i < numLinks; i++) {

    // create new table row...
    var tr   = document.createElement('tr');

    // a cell...
    var td   = document.createElement('td');

    // and your anchor...
    var a    = document.createElement('a'); 

    // set the anchor's href
    a.setAttribute('href', pageLinks[i]);
    // set the anchor's text, it's also the URL in this example
    a.innerHTML = pageLinks[i]; 

    // append the anchor to the table cell
    td.appendChild(a);

    // ... and that cell to the new row
    tr.appendChild(td);

    // ... and that row to the tbody, right? ;-) 
    tbody.appendChild(tr);
}

// after all rows were added to the tbody, 
// append tbody to the table
table.appendChild(tbody);

// and finally append this table to any existing 
// element in your document, e.g. the body: 
document.body.appendChild(table);

// ...or add it to a div for example: 
//document.getElementById('anyDiv').appendChild(table);

答案 1 :(得分:0)

去学习JQuery !!!! XDD最适合Web开发。

使用jquery的第一个和第二个问题:

var anchors = $('a'); //returns all <a></a> elements from here you can get the url from all of theam

使用jquery你可以写任何你想要的元素。

var table = $('<table></table>');
var tr = $('<tr></tr>').appendTo(table);
var td = $('<td></td>').setText('your link here')appendTo(tr);

。 。

table.appendTo(添加表的父元素);

答案 2 :(得分:0)

问题1: 您可以捕获onclick事件以点击链接,并在该商店中捕获您想要选择的变量的任何信息(但是,如果您在onclick事件中包含return false,这只会相关,因为否则链接会将用户带到新页面并结束会话。

问题2和3得到了Alex的很好的回答。