【问题标题】:Jquery - append to all elements where id starts with using each [duplicate]Jquery - 使用每个 [重复] 附加到 id 以开头的所有元素
【发布时间】:2020-05-27 14:15:51
【问题描述】:

我想使用每个 fn 将元素附加到 id 以 post 开头的所有 div。怎么做才对?

import $ from 'jquery'

export const fn = (): void => {
  const $posts = $('[id^="post_id_"]')
  if ($posts.length === 0) return

  $posts.append('<h1>123</h1>') //works

  $posts.each((idx, el) => {
    // here i need to do some staff

    this.append('<h1>321</h1>') // jQuery.Deferred exception: this.append is not a function TypeError
    el.append('<h1>321</h1>') // append as string - not html
  })
}

【问题讨论】:

  • Close,但不完全是(尽管有标题)...
  • @T.J.Crowder This 一个可能吗?
  • @Andreas 包装这个也不起作用......
  • @RTW 我也错过了你在.each()的回调中使用了一个与this“混淆”的箭头函数
  • @Andreas - 我更新了你的 dupetarget 接受的答案,所以它使用thiseach 回调的第二个参数来覆盖。 :-D

标签: jquery


【解决方案1】:

each 回调内,this 将与each 回调外相同,因为您使用的是arror 函数,而el 是一个DOM 元素,而不是一个jQuery 对象。如果要在元素上使用 jQuery 方法,请在其上使用 $()

$(el).append('<h1>321</h1>');

【讨论】:

  • 然后我得到:jQuery.Deferred 异常:无法读取未定义的属性“createDocumentFragment”类型错误:无法读取未定义的属性“createDocumentFragment”i.imgur.com/dZhltHl.png
  • @RTW - 错过了您使用箭头函数;修好了。
  • 天哪,我忘记了箭头函数和这个,谢谢!
  • @RTW - 我的荣幸!编码愉快!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-16
  • 2013-07-29
  • 2012-10-04
  • 2020-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多