【问题标题】:jquery changing innerhtml of a P isn't workingjquery更改P的innerhtml不起作用
【发布时间】:2009-06-01 18:01:59
【问题描述】:

我认为使用 jQuery 进行简单选择可以更改段落中的某些文本。它以传统方式完美运行,即

document.getElementById('message_text').innerHTML = "hello";

但是对于 jQuery,它不会。我检查了$('#message_text') 的值,果然我看到了这些项目。

$('#message_text').innerHTML = "hello";

我做错了吗?

有人有什么想法吗?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    当您执行$('#message_text') 之类的操作时,您所拥有的不是常规的 DOM 对象,而是 jQuery 包装的集合(即使在这种情况下它只是一个元素。)如果您想访问特定的 DOM属性,你可以这样做:

    $('#message_text')[0].innerHTML = 'whatever';
    $('#message_text').get(0).innerHTML = 'whatever';
    

    然而,在这种情况下这不是必需的,因为 jQuery 有两个函数可以做你想做的事:

    html():

    $('#message_text').html('whatever');
    

    text():

    $('#message_text').text('whatever');
    

    两者之间的区别在于html() 将允许HTML,而text() 将转义您传递给它的任何HTML 标签。使用您需要的那个,而不是使用 innerHTML 手动操作 HTML。

    【讨论】:

    • 很高兴你给出一个完整的解释,我删除了我更简单、非解释性的答案,因为你的更好。
    【解决方案2】:

    jQuery 函数 $() 不像 getElementById() 那样返回 HTMLElement 对象,而是返回一个 jQuery 对象。在那里,您只需使用与 innerHTML 等效的 html() 方法。所以:

    $('#message_text').html('hello');
    

    【讨论】:

      【解决方案3】:

      $('#message_text').html('hello')

      jQuery 选择器返回一个数组,而不是一个 DOM 元素节点。

      【讨论】:

        猜你喜欢
        • 2011-12-10
        • 1970-01-01
        • 2020-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多