Как использовать jQuery для добавления статического содержимого в пустую ячейку - PullRequest
2 голосов
/ 09 августа 2010

Вот пример таблицы

<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>

В этой таблице пустые две ячейки. Как я могу использовать jquery для добавления текста "не найден" в эти пустые ячейки?

Ответы [ 3 ]

5 голосов
/ 09 августа 2010
$('table td:empty').append('Not Found');

Демо здесь

Обратите внимание, что селектор :empty означает отсутствие дочерних элементов, включая текстовые узлы, поэтому посмотрите, как устроен ваш html, так как размещение открывающих и закрывающих тегов на новых строках может ввести дочерний текстовый узел в то, что вы считаете пустой ячейкой , Основным способом борьбы с этим может быть определение нашего собственного выражения селектора

(function ($) {

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

})(jQuery);

и затем используйте это

$('td:reallyEmpty').append('Not Found');
2 голосов
/ 09 августа 2010

Вот фрагмент, который я собрал.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<script type="text/javascript" >

$(document).ready(function() {

$('#tableid td').each(function()
{
  if($(this).html() == "") {
    $(this).html("Not Found"); 
  }
});

});

</script>
<table id="tableid" 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>
0 голосов
/ 09 августа 2010

Попробуйте это

$('td').each(function(){
    if($(this).html()=='') 
       $(this).html('not found');
   });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...