隐藏父类div的子类
寻找一些帮助,如果你知道如何,可能不是那么困难。不幸的是,我对jQuery/JavaScript
完全陌生,我不知道如何做到这一点,所以如果有人能指出我正确的方向,那会很棒!隐藏父类div的子类
我正在使用第三方Google地图组件的Joomla网站上工作。酷组件,但有一个特定的标签,我想隐藏。通常我只是简单地用CSS隐藏这个元素,但是由于这个特殊的div没有任何“ID”或“Class”,我想我不能直接用CSS来定位它。
我注意到我想隐藏的div的孩子,有一个独特的类,所以我正在寻找一个解决方案,通过使用孩子的类名,我可以隐藏它的父母。
我想这样的事情会做的伎俩:
$('.gm-style-iw').parent().hide();
然而,我的知识有限,我挣扎,我不知道,如果是涉及到我使用jQuery的代码,或者是因为我“M干脆把它放错了地方或别的东西,我做错了... (总是有‘
Uncaught TypeError: Cannot read property 'parent' of null
’)
一点背景。这或多或少是代码的特定部分的外观。
<div style="cursor: default; position: absolute; left: 234px; top: 86px; z-index: 86;">
<div class="gm-style-iw" style="top: 9px; position: absolute;">
我正在寻找一种方式来隐藏“DIV”上面“DIV CLASS =‘克式-IW’”
下面是谷歌地图组件的一个活生生的例子。 http://83.84.140.23:8888/joomla/index.php/contact
基本上,我试图隐藏“文本气球”,指出“Gabbon”上(在底部在地图)打开网页...
任何人都可以点我在正确的方向关于如何隐藏这个?
非常感谢提前!
Uncaught TypeError: Cannot read property 'parent' of null
发生这种情况是因为您对jQuery函数使用了短$符号。
你的情况,你需要使用:
jQuery('.gm-style-iw').parent().hide();
欲了解更多详情,请参阅noconflict
在你的情况下,该文件被加载后创建的元素,所以你需要MutationObserver API来听为新元素的可用性。
感谢Mutation_events你可以写:
<script>
jQuery('#map').on('DOMNodeInserted', '.gm-style-iw', function(e) {
jQuery('.gm-style-iw').parent().hide();
})
</script>
此外,参照this article或其他不同的处理方法是:
<script>
(function(win){
'use strict';
var listeners = [],
doc = win.document,
MutationObserver = win.MutationObserver || win.WebKitMutationObserver,
observer;
function ready(selector, fn){
// Store the selector and callback to be monitored
listeners.push({
selector: selector,
fn: fn
});
if(!observer){
// Watch for changes in the document
observer = new MutationObserver(check);
observer.observe(doc.documentElement, {
childList: true,
subtree: true
});
}
// Check if the element is currently in the DOM
check();
}
function check(){
// Check the DOM for elements matching a stored selector
for(var i = 0, len = listeners.length, listener, elements; i < len; i++){
listener = listeners[i];
// Query for elements matching the specified selector
elements = doc.querySelectorAll(listener.selector);
for(var j = 0, jLen = elements.length, element; j < jLen; j++){
element = elements[j];
// Make sure the callback isn't invoked with the
// same element more than once
if(!element.ready){
element.ready = true;
// Invoke the callback with the element
listener.fn.call(element, element);
}
}
}
}
// Expose `ready`
win.ready = ready;
})(this);
ready('.gm-style-iw', function(element) {
this.parentNode.style.display = 'none';
}) </script>
谢谢!有了这个,我确实可以删除div,如果我在控制台中输入它。真棒.. 现在我需要弄清楚如何将这个包含在组件中,因为我认为它需要在元素加载到页面后加载? 我打算玩这个现在,并会在这里更新,如果我发现如何做到这一点.. :) – digibeta
@digibeta答案更新,我希望它可以帮助你。让我知道 – gaetanoM
谢谢!它像一个魅力。 :)真的很感谢你放在一起的东西..我会做一个适当的阅读你所链接的一切。真的想学习下次如何自己做... 无论如何,再次感谢一百万!对此,我真的非常感激! – digibeta