2013-02-19 64 views
0

我有這樣的代碼:如何鏈普通的JavaScript和jQuery

document.body.innerHTML=data(); 

我想這個代碼完成後做一些事情(URL /分):

$(data).find('a').prop('href', function(_, href){ 
    url = href.split('/');   
    return href.replace(url[2], 'someUrl'); 

}); 

怎麼辦我將這兩個代碼鏈接在一起?我嘗試過:

document.body.innerHTML=data().end().find('a').prop('href', function(_, href){ 
    url = href.split('/');   
    return href.replace(url[2], 'someUrl'); 

}) 

不起作用,嘗試了一些其他的變化,沒有運氣。

+1

你爲什麼試圖將他們鏈接在第一位?我可以告訴你如何,但它只是讓你的代碼不一致。 – Rivers 2013-02-19 21:51:23

+0

在document.ready中運行jquery – 2013-02-19 21:52:31

+0

請澄清一下'data'是什麼,並提供其他相關功能(如果'data'是一個函數) – Ian 2013-02-19 22:01:34

回答

1

也許嘗試:

document.body.innerHTML = $(data).find('a').prop('href', function(_, href){ 
    url = href.split('/');   
    return href.replace(url[2], 'someUrl'); 
}).wrap("<div>").parent().html(); 

我不完全相信你的data()$(data)之間的區別的,因爲你混他們,但他們是完全不同的。

反正,的.prop(name, func)結果是從之前所選元素。所以當你最後一次調用鏈接的時候是.prop(name, func),你試圖設置document.body.innerHTML作爲一個jQuery對象......基本上:document.body.innerHTML = $("element");。但我認爲你正在嘗試獲取HTML,所以這就是我添加的額外鏈接應該做的。

+0

似乎沒有爲我工作..不知道爲什麼。我只從網站上得到一個微不足道的img Im screen scraping(= data) – Youss 2013-02-19 22:09:23

+0

我已經有了這個代碼,像這樣:$('html')。append(data).find('a')。prop .....等等。沒有爲我工作的一些網站,所以我切換到純JavaScript的document.body.innerHTML哪個更好,但現在我錯過了拆分功能...... – Youss 2013-02-19 22:12:41

+0

那麼'$('html')。append(data)'已經是一個餿主意。您不應該在''標籤上追加元素......使用''標籤執行此操作。這就是爲什麼'document.body'工作「更好」的原因 - 它應該首先是'$(「body」)'。另外,我不確定是否可以在「」元素中附加完整的HTML文檔。您需要獲取''的內容,並且只能追加該內容。無論如何,你可以請更新你的問題,更適合你的jQuery代碼嗎?並且還提供了一個完整(簡化)的例子,它將在'data'變量中出現什麼? – Ian 2013-02-19 22:23:09

相關問題