2015-03-25 54 views
1

我創建動態html內容(表格行)。 td元素根據行將其分配給它。jquery在動態html上查找操作

我想按類執行多個查找元素並執行.text()和樣式操作,然後將最終的html附加到表體中。

我試過這個,不起作用。請幫忙。

  function processrow(html){ 

        $(html).find(".item1").text('Closed'); 
        $(html).find(".item5").css('background-color', '#66a666'); 

        return html; 
      } 

例如值傳遞給函數

<tr><td>row1</td><td class="item1"></td></tr> 

需要它返回

<tr><td>row1</td><td class="item1">Closed</td></tr> 

新增小提琴 - http://jsfiddle.net/6mnLwg0o/2/

+0

可以添加一個小提琴? – Mritunjay 2015-03-25 02:46:31

+1

提示:您將一個*字符串*傳遞給您的函數,字符串是不可變的,您不會執行任何任務。 – nnnnnn 2015-03-25 02:47:10

+0

加小提琴http://jsfiddle.net/6mnLwg0o/2/ – user3658423 2015-03-25 02:52:29

回答

2

首先通過執行$(html)創建帶有源代碼的jQuery對象,然後使用find()對內部元素進行更改。在下面的示例中,我將更新後的html附加到測試div,以便您可以看到結果。

HTML:

<div id="test"></div> 

的JavaScript:

var src = processrow('<table><tr><td class="item5">row1</td><td class="item1"></td></tr></table>'); 
src.appendTo($('#test')); 

function processrow(html) { 

    var obj = $(html); 
    obj.find(".item1").text('Closed'); 
    obj.find(".item5").css('background-color', '#66a666'); 

    return obj; 
} 

演示:http://jsfiddle.net/BenjaminRay/td00gssw/

+0

非常好,謝謝! – user3658423 2015-03-25 04:20:24

0

當你說$(html)它創建一個基於html一個DOM結構然後進行修改。在dom中完成的更改不會反映到源html中,因此要獲取修改後的html,您需要從dom對象中獲取html。

function processrow(html) { 
    var $div = $('<div />', { 
     html: html 
    }); 
    $div.find(".item1").text('Closed'); 
    $div.find(".item5").css('background-color', '#66a666'); 

    return $div.html(); 
}