javascript - jquery 添加元素如果不存在

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

问题是:我们不允许添加任何类或 ID。

想法是添加标题。当然,如果按钮被按下 2 次,则不会添加第二个字幕。

我试过这个:

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

还有这个

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

但两者都不起作用。我已经阅读了关于函数和选择器的 jQuery api,我认为这些会起作用,但它们不起作用。我需要做什么?

最佳答案

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

$('table:not(:has(caption))').prepend('<caption>Orders</caption>');

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

它还使用 prepend() (docs)方法在 DOM 中给出更符合预期的位置。不会影响页面的实际显示。

关于javascript - jquery 添加元素如果不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5059761/

相关文章:

javascript - 滚动条显示和隐藏时页面跳转

javascript - .slideToggle();单击文本时不起作用

javascript - 防止滚动从元素冒泡到窗口

javascript - 在同一个php文件中访问 session 变量

javascript - Angular 将数据传递到模态和模态实例

javascript - node.js 和 PHP 之间的 SHA1 哈希差异

javascript - 替换 Instagram 帖子中的部分文本(主题标签)

javascript - 'media'是Android浏览器javascript中的保留关键字吗?

javascript - 在当前/新窗口中显示 xml

jquery - 带选项卡的 Google 图表 - 图表区域不正确