如果不存在,则jquery添加元素

Kdg*_*Dev 10 javascript jquery

我正在读一本关于jQuery的书,它有一些简单的任务和例子.

我正在尝试向表中添加元素,但前提是该项目尚未存在.

表是这样的:

<table border="1" cellspacing="0">
  <tr>
    <td>Spaghetti</td>
    <td>Karl</td>
  </tr>
  <tr>
    <td>Pasta</td>
    <td>David</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

问题是:我们不允许添加任何类或id.

想法是添加一个标题.当然,如果按下按钮2次,则不会添加第二个标题.

我试过这个:

if(!jQuery.contains('table','caption')) {
    $('table').append('<caption>Orders</caption>');
}
Run Code Online (Sandbox Code Playgroud)

还有这个

if(!($("table:contains('caption')"))) {
    $('table').append('<caption>Orders</caption>');
}
Run Code Online (Sandbox Code Playgroud)

但是没有工作.我已经阅读了关于函数和选择器的jQuery api,我认为这些可以工作,但他们没有.我需要做什么?

use*_*716 19

if()如果你愿意,你可以在没有声明的情况下完成它:

$('table:not(:has(caption))').prepend('<caption>Orders</caption>');
Run Code Online (Sandbox Code Playgroud)

这使用not-selector(docs)has-selector(docs)来选择<table>没有嵌套<caption>元素的元素.

它还使用prepend()(docs)方法在DOM中提供更期望的位置.它不会影响页面上的实际显示.