【问题标题】:Add css to a dynamic added Tablerow将 css 添加到动态添加的 Tablerow
【发布时间】:2016-10-04 14:34:35
【问题描述】:

我正在使用 jquery mobile 创建一个网站,在该网站上我得到了一个如下所示的表格:

FIDDLE

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.css">
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<table data-role="table" class="ui-responsive ui-shadow gk-decorate" id="testTable" is="jqm-table">
  <thead>
    <tr>
      <th data-priority="1">Animal</th>
      <th data-priority="1">Sports</th>
      <th data-priority="1">Names</th>
      <th data-priority="1">Fruits</th>
      <th data-priority="1">Status</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>Cat</th>
      <td>Football</td>
      <td>Anna</td>
      <td>Apple</td>
      <td></td>
    </tr>
    <tr>
      <th>Dog</th>
      <td>Baseball</td>
      <td>James</td>
      <td>Banana</td>
      <td>Checked</td>
    </tr>
    <tr>
      <th>Shark</th>
      <td>Hockey</td>
      <td>David</td>
      <td>Orange</td>
      <td>Checked</td>
    </tr>
    <tr>
      <th>Ape</th>
      <td>PingPong</td>
      <td>Locke</td>
      <td>Mango</td>
      <td></td>
    </tr>
  </tbody>
</table>

我的问题是:我能否以某种方式将一个 css 类或一般 css 添加到 Status Coloumn 内的字符串 "Checked" 的行中。
我尝试过这样的事情:

var qTable = document.getElementById("testTable");
var row = qTable.tBodies[0].insertRow();
row.addClass() //error does not support addClass
row.css({..})//error does not support css..

注意:表格内容是动态添加的

【问题讨论】:

    标签: jquery html css jquery-mobile


    【解决方案1】:

    使用contains:伪选择器用你的标记过滤掉&lt;td&gt;s,然后得到它们的父节点(&lt;tr&gt;s)

    $('td').filter(":contains('Checked')").parent().addClass('sugar')
    

    https://jsfiddle.net/rttmq4we/

    【讨论】:

      【解决方案2】:

      试试这个,

      JS

      $("#testTable td").each(function(){
          if($(this).text() =='StatusChecked'){
         $(this).parent().addClass('checked');
         }
      });
      

      CSS(仅用于测试样式)

      .checked{
        background:green;
      }
      

      更新的小提琴 -

      https://jsfiddle.net/guruling/erc3ujzw/
      

      【讨论】:

        【解决方案3】:

        试试:

        $("#testTable tr").each(function(){
          var tds  = $(this).find("td");
          var statusCell = $(tds[3]);
          var statusCellTxt = statusCell.text();
          if (statusCellTxt.indexOf('Checked') !== -1){
            $(statusCell).css('border', '1px solid red');
          }
        });
        

        见小提琴HERE

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-09-19
          • 1970-01-01
          • 2021-11-06
          • 1970-01-01
          • 2023-03-18
          • 2011-07-05
          相关资源
          最近更新 更多