jQuery 搜索特定文本的 ID

发布于 2024-09-28 19:37:26 字数 458 浏览 2 评论 0原文

我正在寻找一种在当前单击的元素上搜索 ID 的方法。

示例:

$('.t_element').click(function(){
            if(!$('.t_element [id*=meta]')) {
                transModal($(this));
                translateText();
            }
        });

我基本上需要说如果单击的元素 id 不包含单词“meta”,则继续执行脚本,但这不起作用。

抱歉,如果这令人困惑。

谢谢! 丹尼斯

工作示例:

if (!$(this).is('[id*=meta]')) {
    transModal($(this));
    translateText();
}

I am looking for a way to search for an ID on the current clicked element.

Example:

$('.t_element').click(function(){
            if(!$('.t_element [id*=meta]')) {
                transModal($(this));
                translateText();
            }
        });

I basically need to say if the clicked element id does not contain the word "meta" then continue with the script, but this is not working.

Sorry if this is confusing.

Thanks!
Dennis

Working Example:

if (!$(this).is('[id*=meta]')) {
    transModal($(this));
    translateText();
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

浅浅 2024-10-05 19:37:26

如果元素的 ID 不会更改,那么我只需将测试包含在选择器中,这样您就不会分配不需要的 .click() 处理程序。

$('.t_element:not([id*=meta])').click(function(){
    transModal($(this));
    translateText();
});

这使用 :not() 选择器 以及 属性包含选择器,以防止将处理程序分配给 ID 包含 meta 的元素

If the IDs of the elements aren't going to change, then I'd just include the test in the selector so you're not assigning unneeded .click() handlers.

$('.t_element:not([id*=meta])').click(function(){
    transModal($(this));
    translateText();
});

This uses the :not() selector along with the attribute contains selector to prevent the handler from being assigned to elements where the ID contains meta.

忘东忘西忘不掉你 2024-10-05 19:37:26

Sarfraz 的版本应该可以工作。另一种方法是使用 .is()

if ($(this).is('[id*=meta]')) {
    transModal($(this));
    translateText();
}

或者,正如帕特里克所说,如果您希望在元素的 id 包含“meta”时执行操作:

if ($(this).not('[id*=meta]')) {
    transModal($(this));
    translateText();
}

Sarfraz's version should work. Another method is using .is():

if ($(this).is('[id*=meta]')) {
    transModal($(this));
    translateText();
}

Or, as Patrick says, if you want not to act if the element has an id containing "meta":

if ($(this).not('[id*=meta]')) {
    transModal($(this));
    translateText();
}
旧伤慢歌 2024-10-05 19:37:26

尝试使用 length 像这样:

$('.t_element').click(function(){
   if($('[id*="meta"]', $(this)).length === 0) {
     transModal($(this));
     translateText();
   }
});

或者:

$('.t_element').click(function(){
   if($(this).attr('id').indexOf('meta') <= -1) {
     transModal($(this));
     translateText();
   }
});

Try with length like this:

$('.t_element').click(function(){
   if($('[id*="meta"]', $(this)).length === 0) {
     transModal($(this));
     translateText();
   }
});

Or:

$('.t_element').click(function(){
   if($(this).attr('id').indexOf('meta') <= -1) {
     transModal($(this));
     translateText();
   }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文