我对此非常陌生,所以如果我没有正确解释,或者没有提供正确的代码(或提供太多代码),请原谅我。
所以我的页面顶部附近有这段代码:
<div id="javo-detail-item-header-wrap" class="container-fluid javo-spyscroll lava-spyscroll" style="padding: 0px; z-index: 1;">
然后再往下一页:
<div id="post-2355" class="single-item-tab post-2355 property type-property status-publish has-post-thumbnail hentry property_type-ny property_status-sold">
我想从第一行代码中定位#javo-detail-item-header-wrap
,但仅当.property_status-sold
也在页面上时。
根据我的理解,它的后代无法通过CSS定位元素,对吧?我已经看到网上提到通过用jQuery重命名第一个ID来解决类似情况 - 这是需要做什么的?
如果它不在同一个div中,那么第二个元素甚至是第一个元素的后代吗?
答案 0 :(得分:0)
试试这个:
jQuery(document).ready(function(){
var myclass = jQuery(".property_status-sold");
if(myclass != undefined)
{
// Write whatever you want..
jQuery("#javo-detail-item-header-wrap").show();
}
});
答案 1 :(得分:0)
如果没有看到完整的代码结构,我会说99%使用纯CSS是不可能的。在JavaScript中执行它应该非常简单:
function getIt() {
if (document.getElementsByClassName('property_status-sold').length > 0)
return document.getElementById('javo-detail-item-header-wrap');
}
要获取您的元素,只需调用函数getIt
(并给它一个更好的名称) - 它将返回元素引用,如果undefined
不是,则返回.property_status-sold
找到或由于某种原因缺少实际元素#javo-detail-item-header-wrap
。
如果你真的非常喜欢jQuery,这里是上面的代码(注意它返回一个jQuery对象,而不是元素引用 - 你可以使用.get(0)
来元素引用):
function getIt() {
if ($('.property_status-sold').length > 0)
return $('#javo-detail-item-header-wrap');
}
隐藏该元素的快速修复:
jQuery(document).ready(function(){
if (jQuery('.property_status-sold').length > 0)
jQuery('#javo-detail-item-header-wrap').hide();
})
这就是你所需要的一切。