javascript - 如何获取html元素的子元素

标签 javascript jquery

我在 JS 自定义对象中保存了一个 var(下面的代码来自类内部):

var toolbar;

this.create_toolbar = function() {
    self.toolbar = document.createElement('div');
    $(self.toolbar)
        .html('<ul>' +
            '<li id="insert_bold"></li>' +
            '<li id="insert_em"></li>' +
            '<li id="insert_hyperlink"></li>' +
            '<li id="insert_code"></li>' +
            '<li id="insert_image"></li>' +
            '</ul>')
        .insertBefore(self.editTextarea); // just a textarea on the page
}

工具栏已成功创建并放置,self.toolbar 现在保存新 div 的对象。但是,当尝试将

  • 绑定(bind)到点击时,我似乎没有发生任何事情:

    $(self.toolbar).children("li#insert_bold").click(function() {
        alert("just checking");
    });
    

    需要明确的是,在执行上述操作之后,当我点击

  • 时没有任何反应

    我有什么遗漏的吗?我对 jQuery 相当陌生……我可以在 $() 中放置一个包含 [object object] 的变量吗?如果没有,我该怎么做?

  • 最佳答案

    您需要使用 .find() 在这里,像这样:

    $(self.toolbar).find("li#insert_bold").click(function() {
      alert("just checking");
    });
    

    .children() 只查看直接 child ,<li>位于<ul>下方不过,所以它不是一个直系 child 。


    请注意,如果您打算在一个页面上拥有多个实例(我猜这很可能是这种情况),您应该使用类(ID 必须是唯一的),然后使用类选择器,例如示例:$(self.toolbar).find("li.insert_bold") .

    关于javascript - 如何获取html元素的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4401239/

    相关文章:

    javascript - Rails 渲染 js 文件但无法执行

    javascript - 开 Jest 抛出 TyperError : Expected a function when using lodash pipe/flow

    javascript - 只要按下特定键就循环运行函数

    javascript - 如何在 jQuery 中按最近日期时间重新排列数据属性上的子 div?

    javascript - 如何使 jquery 事件在具有动态内容和选择器的 Bootstrap 模式中工作?

    javascript - Rails 3 中的 Ajax 页面加载正在破坏其他 JavaScript 功能..?

    javascript - $.parseXML() 在 IE 8 以上的 IE 版本中不起作用

    javascript - 显示来自 ajax json 解析的数据时出现问题

    javascript - jQuery onclick 加载随机使用 firefox

    javascript - 修改克隆数组的值时如何保留嵌套数组的值?