$('.slider').each(function(){
if($('li:last',this).width()+$('li:last',this).offset().left-$('li:first',this).offset().left < $('div',this).width()){
//doing something
}
});
我有多张幻灯片,只有一张可见。在这里,我试着在阅读每张幻灯片后做一些事情。问题是,如果隐藏幻灯片,我无法阅读幻灯片。有什么方法可以使用jquery读取隐藏的div。
答案 0 :(得分:1)
JQuery可以读取隐藏的元素,因为它将隐藏在用户之外但存在于HTML中,但如果您意味着从服务器端将其设置为visible=false
,则意味着我不会在HTML中呈现并且JQuery无法确定找到它。
答案 1 :(得分:1)
我认为你试图读取隐藏div及其子对象的维度属性?
由于div是隐藏的,因此维度属性没什么意义。尝试取消隐藏div,并在检查其尺寸及其子尺寸之前添加到其css:position: absolute; left: -5000px;
。然后将其恢复为隐藏状态以及之前的位置和左设置。
答案 2 :(得分:0)
假设您没有加载新页面,或者每次更改幻灯片时都删除节点,那么DOM中的div应该可用。如果你知道div的id,你可以使用:
var divContents = $('#slide2').html()
等。请记住,这将为您提供innerHTML,而不是文本(除非innerHTML中只有文本)。
答案 3 :(得分:0)
如果Gus是对的,你需要:
类似的东西:
$('.slider').each(function(){
var lastLi = $('li:last',this);
var firstLi = $('li:first',this);
var divJQObject = $('div', this);
var originalStyle = {
'display': divJQObject.css('display'),
'visibility': divJQObject.css('visibility')
};
if(!divJQObject.is(":visible")) {
var hiddenButReadableStyle = {
'visiblity': 'hidden',
'display': 'block'
}
divJQObject.css(hiddenButReadableStyle);
}
if(lastLi.width()+$lastLi.offset().left-firstLi.offset().left < divJQObject.width()){
// Do Something
}
divJQObject.css(originalStyle);
});