将html注入<李>使用js或jquery

inject html into <li> with js or jquery

本文关键字:使用 js jquery gt html lt 注入      更新时间:2023-09-26

我正在构建一个Chrome扩展,并试图将HTML注入<li>。但它没有出现。这是我的代码:

$('.tab-nav-bar .tab-nav-bar-center ul').append('<li class="tab-nav"><a class="tab-nav-button" href="https://example.com">new li</a></li>');

这是它被注入的HTML:

<div class="tab-nav-div">
    <ul class="tab-nav-bar tab-nav-bar-center">
        <li class="tab-nav">
            <a class="tab-nav-button " href="https://app.asana.com/.../files">Files</a>
        </li>
    </ul>
</div>

如果我做$('body').append('<li class... >');,效果很好。所以我尝试了多个我认为不起作用的部分的排列,例如:'.tab-nav-bar.tab-nav-bar-center.ul''ul.tab-nav-bar.tab-nav-bar-center'等,但似乎无法得到。

我知道(我认为)我的manifest.json是有效的,因为"body"版本有效,但就其价值而言,它是:

{
  "name": "Insert HTML",
  "description": "Inserts HTMLS",
  "version": "2.0",
  "permissions": [
    "activeTab"
  ],
    "content_scripts": [
       {
          "matches":    ["https://app.asana.com/*"],
                "js": ["jquery-1.8.1.min.js", "javascript.js" ]
       }
    ],
    "web_accessible_resources": [
        "go.css",
            "shawn-test.html"
        ],
  "icons": {
      "128": "icon/icon_128.png",
      "16": "icon/icon_16.png",
      "48": "icon/icon_48.png"
  },
  "browser_action": {
    "default_title": "goo goo"
  },
  "manifest_version": 2
}

在ul 上有两个类

应该是像这个

$('ul.tab-nav-bar.tab-nav-bar-center').append('<li class="tab-nav"><a class="tab-nav-button" href="https://example.com">new li</a></li>');

如果您在"选项卡导航div"中搜索,则

$('.tab-nav-div ul.tab-nav-bar.tab-nav-bar-center').append('<li class="tab-nav"><a class="tab-nav-button" href="https://example.com">new li</a></li>');

JSFiddlehttps://jsfiddle.net/ne76vrmy/

尝试

 $('ul.tab-nav-bar.tab-nav-bar-center').append('<li class="tab-nav"><a class="tab-nav-button" href="https://example.com">new li</a></li>');

$('.tab-nav-bar tab-nav-bar-center ul')不起作用,因为它将查找ul作为.tab-nav-bar-center的子级,但在您的情况下,tab-nav-bar-centerul本身的类。因此,在您的情况下,$('ul.tab-nav-bar.tab-nav-bar-center')应该起作用。