簡體   English   中英

如何從另一個主機獲取表的特定單元格的值

[英]How to get value of a specific cell of a table thats from a different host

如標題所示。

我正在嘗試從外部網站的表格中收集特定的單元格信息。 然后,我想在自己表的單元格中顯示該值。 這是在諸如按下“更新”按鈕之類的事件上完成的。

外部站點的表格式如下:

<table class="data-table">
        <tr>
            <td class="label">jhgjghgf:</td>
            <td class="data">0.20079</td>
            <td class="spacer"><span></span></td>
            <td class="label">hdfxshgx:</td>
            <td class="data">-0.383</td>
        </tr>
        <tr>
            <td class="label">kjhgk:</td>
            <td class="data">90.008</td>
            <td class="spacer"><span></span></td>
            <td class="label">kjhg:</td>
            <td class="data">N/A</td>               
        </tr>
</table>

假設我只想收集第2行第2行,然后在我自己的表中顯示該值。 我能做什么?

抱歉,我尚未開始編寫代碼,因為整個網站取決於我/我們是否可以正常工作。

使用jQuery,您可以按以下方式獲得此值:

$('.data-table tr:nth-child(2) td:nth-child(2)').text()

如果要通過AJAX請求外部站點的表,然后從表中獲取值,則可以這樣進行:

$.get(<url of external site>).function(result) {
     var value = $(result).('.data-table tr:nth-child(2) td:nth-child(2)').text();
     // now add this value to your table, e.g. $('.my_table td')[0].text(value);
};

您將需要通過服務器語言庫(例如,通過Coldfusion http()或PHP HttpRequest())執行此操作。

可以通過純js​​(通過ajax / jQuery)執行此操作,但是只有在您具有跨瀏覽器規則並訪問文件設置(即:您正在挖掘的其他站點需要授予您的權限,請參見https:// www時)。 bionicspirit.com/blog/2011/03/24/cross-domain-requests.html ,了解更多信息)。

某些較舊的瀏覽器可能會讓您擺脫x瀏覽器的請求,但較新的瀏覽器卻不能。

如果可以解決這個問題,那么使用來自結果請求的基於CSS的選擇器,jQuery將會是最簡單的(如果最終可以使用jQuery ajax):

myData = $('.data-table tr:nth-child(2) td:nth-child(2)');

這將獲得任何第二行第二表單元格元素作為jQuery包裝集。

我會在服務器端執行此操作。 您需要在另一台主機上請求html頁面,找到所需的單元,然后將其發送回您的網站。

我不知道您使用的是哪種語言,但是您可以輕松地找到一些庫,讓您可以像在jquery中一樣解析html,但可以在php中說。

好了,您可以使用jquery並像這樣繼續

function getRowData(row,col)
{
  var rows = $('.data-table tr');
  var cols =$(rows[row],'td');

 return   cols[col];

}

這將返回指定行和列號的'td'

您可以使用獲得其價值

getRowData(1,1).html();

希望這可以幫助

您在此處試圖實現的目標被認為是危險的,應避免使用。

忽略要求您嘗試使用AJAX獲取外部站點內容的新手的答案。 由於瀏覽器實施了相同起源策略 ,因此無法執行。 即您不能從您的站點向任何其他網站發出AJAX請求。

有多種方法可以使用iframes包含其他網站的網頁,但我也不建議這樣做。

最好的選擇是依靠服務器端技術來獲取有問題的頁面,然后對其進行解析並獲取所需的值。

由於您沒有提到任何服務器端技術,因此我無法提供任何代碼示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM