2012-01-27 72 views
1

好的,所以我正在處理一個CMS系統,它產生了很好的(不)代碼。我無法改變代碼/內容的生成方式,但我可以添加自己的JavaScript/jQuery代碼來重寫生成的內容。我在看它看起來像這樣一種形式......我可以只從這段代碼中選擇文本/標籤並在其周圍包裝一個標籤嗎?

<table> 
    <tr> 
     <td> 
      First Name<br><input id="first_name_field" name="first_name" value="" type="text"> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      State/Province/Region<br><div id="regstatediv_187"><select name="state" id="state_field" class="inputbox"><option value=" ">Select State/Province/Region</option><option value="ALA">Alabama</option>...</select></div> 
     </td> 
    </tr> 
</table> 

我一直在玩的HTML()和text()函數在jQuery和迄今無法找到一種方法,只選擇文本「標籤「然後將其包裝並寫回來,而不會破壞流程中的表單字段。有什麼建議麼?

謝謝!

+0

jQuery的不對付DOM中的文本節點提供太多支持的。然而,有些插件可能是有用的,如[Lettering.js](http://letteringjs.com)。或者,您可以查看該代碼,瞭解如何從DOM中「挖掘」文本的想法。 – Pointy 2012-01-27 16:21:30

+0

...或者你可以忽略我,並使用@ ShankarSangoli的答案:-) – Pointy 2012-01-27 16:28:37

+0

@Pointy我只是不得不笑笑最後的評論:)真的! – 2012-01-27 16:42:30

回答

3

試試這個

$('table td').contents().filter(function() { 
    return this.nodeType == 3; 
}).wrap('<span class="label" />');//use any markup you want to wrap with 

Demo

+0

+1但爲什麼不使用真正的'標籤'? – kapa 2012-01-27 16:27:40

+0

是的,我們也可以使用標籤。 OP可以根據需要添加任何標記。關鍵是通過jQuery來找到這些標籤。 – ShankarSangoli 2012-01-27 16:43:22

+0

我明白了。請注意,因爲在這個例子中,您可能想要展示最佳實踐,但這不是一件大事。 – kapa 2012-01-27 16:59:56

相關問題