2017-05-26 58 views
0

我需要使用jQuery將tabindex設置爲下表中的所有td存在。使用jQuery對DOMParser對象執行操作

我可以用下面的代碼來做到這一點,如果表是在DOM中。
但是,如果表格仍不存在於DOM中呢?
它仍然在JavaScript變量?

所以我的問題是關於jQuery選擇器。
給出「table tr td」,然後可以在DOM上找到它。

但是我怎樣才能在jQuery選擇器中使用我的DOMParser對象,所以我將嘗試在我定義的DOM對象中找到表標記,而不是在文檔全局對象上。

如果您有任何問題,請讓我知道。

$("table tr td").each(function (i) { $(this).attr('tabindex', 0); }); 

任何關於表操作的例子將不勝感激。提前致謝。

var xmlString = "<table id='tableabc' border='1' style='width:50%'> <tr> <th>Firstname</th> <th>Lastname</th> <th>Age</th> </tr> <tr> <td>Jill</td> <td>Smith</td> <td>50</td> </tr> <tr> <td>Eve</td> <td>Jackson</td> <td>94</td> </tr> </table>"; 

var parser = new DOMParser(); 

var doc = parser.parseFromString(xmlString, "text/xml"); 

其餘的東西如何使用我不確定這一點。

+1

jQuery有[parseHTML(https://api.jquery.com/jquery.parsehtml/),這意味着更換的DOMParser但它會做你的最終目標我想 – niceman

+0

你的問題不清楚..特別是這句話:*«但是我怎麼用我的DOMParser ...»*我試圖改進它,但是你試圖達到的對我來說是一個謎。請編輯它。 –

+0

我想設置tabindex所有td在表中使用jQuery的HTML內容尚未在文檔上。 –

回答

0
var htmlstring = "<table id='table47' border='1' style='width:50%'> <tr> <th>Firstname</th> <th>Lastname</th> <th>Funny</th> </tr> <tr> <td>A</td> <td>N</td> <td>No</td> </tr> <tr> <td>A</td> <td>P</td> <td>Yes</td> </tr> </table>"; 

var $jQueryObject = $($.parseHTML(htmlstring)); 

$jQueryObject.each(function(){  
    var tdObj = $(this).find("td"); 
    var thObj = $(this).find("th"); 
    thObj.attr('tabindex', 7); 
    tdObj.attr('tabindex', 8); 
}); 

console.log($jQueryObject); 
$("#divForParsedTable").html($jQueryObject); 
+0

那麼問題是什麼?你能爲未來的讀者解釋嗎? –

+0

@LouysPatriceBessette:HTML存儲在字符串中,我想設置一些屬性給那些存儲在字符串變量使用jQuery的HTML。 我不確定如何在jquery選擇器中選擇html來執行操作。現在回答使用parseHTML(字符串)找到答案。再次感謝。 –

+0

請注意,您可以使用DOMParser的原始解析文檔完全相同:只需將返回的文檔包裝到jquery對象中,並從那裏執行導航:'$ doc = $(new DOMParser()。parseFromString(' Hello','text/html')); $ doc.find('a')。attr('href','home');' – Kaiido