javascript - 如何解析 textarea 输入中的 html 并将 addClass 添加到 td 元素

标签 javascript jquery forms

我的问题是这样的:我正在提交一个带有 textarea 输入的表单,其中包含一个 HTML 表格,内容中包含 TD 元素中的特定值,我正在尝试解析这些元素并根据它向 TD 添加一个类值(value);然后在发送到服务器之前将其保存回表单。

表格看起来像这样:

<table>
<tr>
  <td>b</td>
  <td>r</td>
</tr>
<tr>
  <td>y</td>
  <td>n</td>
</tr>
</table>

这是我现在拥有的 JS:

$('#form').submit(function() {
  var table = $('#mytextarea').val();

  $('td', table).each(function() {
    var td = $(this);
    switch(td.text()) {
      case 'r':
        td.addClass('red');
        break
      case 'y':
        td.addClass('yellow');
        break
    }
    table = td.wrap('table').parent().html();
  });
});

所以基本上我只想解析字符串中的 HTML 并向元素添加类,然后保存回字符串,如果这有意义的话。

这是一个 fiddle :

http://jsfiddle.net/Z265d/

我想我已经很接近了,但还没有完全实现。

最佳答案

我在您的表格周围包裹了一个 div,并将 wrap 更改为 closest,这将获取表格,然后是其父级 (div),并获取其 html。

http://jsfiddle.net/Z265d/3/

var table = '<div><table><tr><td>r</td><td>y</td></tr><tr><td>g</td><td>b</td></tr></table></div>';

$('td', table).each(function() {
  var td = $(this);
  switch(td.text()) {
    case 'r':
      td.addClass('red');
      break;
    case 'y':
      td.addClass('yellow');
      break;
    case 'b':
      td.addClass('blue');   
      break;
    case 'g':
      td.addClass('green');   
      break;          
  }
  table = td.closest('table').parent().html();
});

$('#output').text(table);

关于javascript - 如何解析 textarea 输入中的 html 并将 addClass 添加到 td 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12971162/

相关文章:

javascript - NodeJS 模块中的函数返回返回未定义,这不是真的

javascript - 如何使用跨度值选择单选按钮?

javascript - Jquery 仅在控制台内工作,即使已准备好文档

forms - 在 OSX 上制作像邮件应用程序这样的输入字段

javascript - 为什么我看不到 SplitViewCommand 输入?

javascript - jQuery animate() 第二次没有正确设置高度动画

javascript - 浏览器的 JavaScript 垃圾回收是如何工作的?

jquery - Bootstrap 3 事件状态导致导航栏上的错误

javascript - 如何使用 javascript 和/或 jquery 添加表单字段值?

android 从 html 表单值(选择标签)填充微调器