我正在寻找一种在当前点击元素上搜索ID的方法。
示例:
$('.t_element').click(function(){
if(!$('.t_element [id*=meta]')) {
transModal($(this));
translateText();
}
});
我基本上需要说明,如果点击的元素id不包含单词“meta”,那么继续使用脚本,但这不起作用。
很抱歉,如果这令人困惑。
谢谢! 丹尼斯
工作示例:
if (!$(this).is('[id*=meta]')) {
transModal($(this));
translateText();
}
答案 0 :(得分:2)
如果元素的ID不会改变,那么我只是将测试包含在选择器中,这样就不会分配不需要的.click()
处理程序。
$('.t_element:not([id*=meta])').click(function(){
transModal($(this));
translateText();
});
这会使用the :not()
selector和the attribute contains selector来阻止将处理程序分配给ID包含meta
的元素。
答案 1 :(得分:1)
尝试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();
}
});
答案 2 :(得分:1)
Sarfraz的版本应该有效。另一种方法是使用.is()
:
if ($(this).is('[id*=meta]')) {
transModal($(this));
translateText();
}
或者,正如帕特里克所说,如果你希望不如果元素的id包含“meta”,则表示
:if ($(this).not('[id*=meta]')) {
transModal($(this));
translateText();
}