如何使用jQuery将静态内容添加到空单元格

Dhr*_*Jha 2 javascript jquery jquery-plugins

这是一个示例表

<table width="580" height="217" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="334">Website</td>
    <td width="246">Category</td>
  </tr>
  <tr>
    <td>http://www.google.com</td>
    <td>Search Engine</td>
  </tr>
  <tr>
    <td>http://www.gmail.com</td>
    <td>Web Mail</td>
  </tr>
  <tr>
    <td>http://www.xyz.com</td>
    <td></td>
  </tr>
  <tr>
    <td>http://www.amazon.com</td>
    <td>Shopping</td>
  </tr>
  <tr>
    <td>http://www.website.com</td>
    <td></td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

此表中有两个单元格为空,如何使用jquery在这些空单元格中添加"未找到"文本?

Rus*_*Cam 5

$('table td:empty').append('Not Found');
Run Code Online (Sandbox Code Playgroud)

在这里演示

请注意,选择器:empty不包括子节点,包括文本节点,因此请注意如何布置html,因为在新行上布置开始和结束标记可能会将文本节点子节点引入您认为是空单元格的内容.解决这个问题的基本方法是定义我们自己的选择器表达式

(function ($) {

    $.extend($.expr[':'],{
        reallyEmpty: function(elem) {
            return !elem.firstChild ||
               elem.firstChild.nodeType === 3 && !!/^\s|\n$/.test(elem.firstChild.textContent);
        }
    });

})(jQuery);
Run Code Online (Sandbox Code Playgroud)

然后使用它

$('td:reallyEmpty').append('Not Found');
Run Code Online (Sandbox Code Playgroud)