【问题标题】:jquery compare this with an extra valuejquery 将此与额外值进行比较
【发布时间】:2023-03-26 19:37:01
【问题描述】:

如何将$(this)data-id 的值(可能是1-2rju-aodg)进行比较。

我的意思是我需要指定$(this) 有标签data-id,我需要验证它是否等于X

$(this).data('id')/*==123123akfsna*/.siblings('p').html(no_featured_news).removeClass('existing').addClass('description');

【问题讨论】:

    标签: javascript jquery find compare


    【解决方案1】:

    如果你不想使用if

    $(this).filter('[data-id="1-2rju-aodg"]').siblings('p')........
    

    【讨论】:

    • 由于额外的方法调用,这比代码悖论的答案稍慢(理论上)。我不确定如何,但显然 jQuery 选择器中的 this + 'string' 确实会扩展为正确的选择器。这很奇怪,因为 console.log(this) 似乎什么也没打印。
    • @ExplosionPills。 1. 我会使用我的版本,因为它更简单、更清晰。 2. 我不确定它是否慢。无论如何,filter 是处理这类事情的函数。
    【解决方案2】:
    if ($(this).attr('data-id') == '1-2rju-aodg') {
       $(this).siblings('p')//...
    }
    

    【讨论】:

    • 我不希望它处于 if 条件,我正在尝试 @thecodeparadox 的版本。 Tnks 无论如何(:
    • @w0rldart 也可以使用;为什么不在条件中使用它?
    • @w0rldart。然后使用filter
    • +1,我认为这应该是答案,但为了他的要求,我添加了另一种没有if的方式。
    【解决方案3】:
    $(this + '[data-id=123123akfsna]')
          .siblings('p')
          .html(no_featured_news)
          .removeClass('existing')
          .addClass('description');
    

    Working Sample

    【讨论】:

    • @Vega。这很奇怪!,反正看我的回答,应该是这样的。
    • @gdoron 我知道.. 但我仍然想了解$(this + '[data-id=123123akfsna]') 的工作原理
    猜你喜欢
    • 2021-04-24
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 2019-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多