2011-04-21 77 views
1

我想知道是否可以使用jQuery來重新編碼輸入到表單中的HTML。例如,我想「條帶化」用戶手動輸入到表單文本區域的HTML表格代碼。如果文本區域有一個id = tablecode它不工作做你可以使用jQuery來操作輸入表單文本區域的html嗎?

$('textarea#tablecode tr:even').addClass('table_even'); 

是否有某種方式使用jQuery來操縱這些用戶進入表單框中的HTML?還是我需要將表單提交給服務器,然後在PHP中使用正則表達式來添加我的類?謝謝。

回答

1

不直接因爲文本區的內容都只是文字..

但是,您可以閱讀textarea的價值,只要它是創造的,一個內存中表示(有效的html),並處理它。

$('#convert').click(function(){ 
    var $html = $($('#tablecode').val()).wrapAll('<div />').parent(); 

    // manipulate html 
    $('tr:even', $html).addClass('table_even'); 

    //show altered html in another textarea with id=result 
    $('#result').val($html.html()); 
}); 

http://jsfiddle.net/gaby/f4FuG/

+0

謝謝,工作完美 – Sharon 2011-04-21 03:30:06

0

ID適用於單個元素。它們必須是唯一的。嘗試將ID更改爲班級,並將#更改爲.

+1

可能是最好的註釋演示。 – 2011-04-21 01:49:52

1

您需要將文本拖出textarea並從中創建一個DOM節點。 (然後,如果需要,可以將其串行化回字符串並將其放回textarea中。)

0

textarea模型是純文本。所以這個選擇器$('textarea#tablecode tr:even')將無法​​正常工作。

您需要將您的文本傳遞給html解析器才能獲取DOM。然後修改它。然後將其序列化回HTML。

This Robust and Mature HTML Parser for PHP可能會有用。

2

嘗試

var code = $('textarea#tablecode')[0].value; 
var parsedHTML = $(code); 

有你有一個jQuery對象王氏解析HTML。然後你可以操作它

$("tr:even", parsedHTML).addClass('table_even"); 

並且可選地將更改放回到textarea中。

$('textarea#tablecode')[0].value = parsedHTML[0].outerHTML; 
相關問題