![](/img/trans.png)
[英]How to get value from specific cell from a HTML table with JavaScript
[英]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.