PDA

View Full Version : دسترسی به تگ پدر از روی تگ فرزند



engmmrj
سه شنبه 09 مهر 1392, 21:25 عصر
سلام ، من میخوام از روی تگ فرزند به تگ پدر دسترسی پیدا کنم ، مثال

<header>
<table>
</table>
</header>

میخوام از روی table به header دسترسی پیدا کنم یعنی بر عکس mehtod parent()
موفق باشید .

mnvoh90
سه شنبه 09 مهر 1392, 21:30 عصر
من با
$('table#id').parent();
از table به header می رسم. حالا نمی دونم منظور از برعکس پرنت چی بود :لبخند:

Javidhb
سه شنبه 09 مهر 1392, 21:32 عصر
$('table').parent('header').first().

()first برای محکم کاریه!

engmmrj
سه شنبه 09 مهر 1392, 21:59 عصر
من کد زیر رو نوشتم ولی درست کار نمی کنه !

$.fn.Center_Top_Down = function() {

var HeightBody = this.height() ;

alert( this.parent() ) ;
var Heights = ( this.parent().height() - HeightBody ) / 2 ;

this.css({'margin-top':Heights+'px'});


return this ;
}



<div class="menu">
<ul>
<li><a href="#" target="_top">صفحه اصلی</a></li>
<li><a href="#" target="_top">صفحه اصلی</a></li>
<li><a href="#" target="_top">صفحه اصلی</a></li>
</ul>
</div>

$(function(){

$('.menu a').Center_Top_Down();

})

mnvoh90
سه شنبه 09 مهر 1392, 22:08 عصر
مطمئن نیستم ولی فکر کنم Heights همیشه صفر بشه مگر اینکه li پدینگ و یا a مارجین داشته باشه. چه جوری کار نمیکنه؟ کنسولتون رو نگاه کنید ببینید ارور می ده یا نه

mnvoh90
سه شنبه 09 مهر 1392, 22:10 عصر
برای کاری هم که می خواید بکنید به نظر من از یه همچین روشی استفاده نکنید بهتره. از line-height‌استفاده کنید

engmmrj
سه شنبه 09 مهر 1392, 22:14 عصر
نه Error نمیده . مشکلش از اینه this.parent().first() !

mnvoh90
سه شنبه 09 مهر 1392, 22:18 عصر
.first() کجا بود؟؟؟ :متفکر:

Javidhb
سه شنبه 09 مهر 1392, 22:22 عصر
من نفمیدم میخای چیکار کنی!!!
اما جواب سوالتون اینجوری میشه:


(function($){
$.fn.Center_Top_Down = function() {
var HeightBody = this.height() ;
var Heights = ( this.parents('div').first().height() - HeightBody ) / 2 ;

this.css('margin-top',Heights+'px');

return this ;
}

$('.menu a').Center_Top_Down();

})(jQuery);


اگه بازم نشد... بگید درستش میکنیم!

engmmrj
سه شنبه 09 مهر 1392, 22:26 عصر
من نفمیدم میخای چیکار کنی!!!
اما جواب سوالتون اینجوری میشه:


(function($){
$.fn.Center_Top_Down = function() {
var HeightBody = this.height() ;
var Heights = ( this.parents('div').first().height() - HeightBody ) / 2 ;

this.css('margin-top',Heights+'px');

return this ;
}

$('.menu a').Center_Top_Down();

})(jQuery);


اگه بازم نشد... بگید درستش میکنیم!
وقتی میخوایم یه Box رو از سمت چپ و راست center کنیم از margin auto استفاده میکنیم ولی این قابلیت برای از بالا به پایین وجود نداره که من این کد رو نوشتم که ازش استفاده کنم ، سبک کار اینجوریه باید عرض تگ پدر رو بگیره و منهای عرض خود تگ کنه ! ، حالا ما اسم خود تگ رو دادیم اینجا باید بیاد تگ پدر رو بدست بیاره !

Javidhb
سه شنبه 09 مهر 1392, 22:34 عصر
آهان!!!
مشکل کد شما این بود که parent لینک، li میشد که هم ارتفاع خود a هست!



اینجوری کارتون راه میوفته:


<div class="menu" style="height: 500px;">
<ul>
<li><a href="#" target="_top">صفحه اصلی</a></li>
<li><a href="#" target="_top">صفحه اصلی</a></li>
<li><a href="#" target="_top">صفحه اصلی</a></li>
</ul>
</div>

<script>
(function($){
$.fn.Center_Top_Down = function() {
var HeightBody = this.height() ;
var Heights = ( this.parent().height() - HeightBody ) / 2 ;

this.css({ position:"relative", top: Heights+'px'});

return this ;
}

$('.menu ul').Center_Top_Down();

})(jQuery);
</script>

Javidhb
سه شنبه 09 مهر 1392, 22:51 عصر
از اینم میتونید استفاده کنید:



$('.menu ul').css({ position:"relative", top: '50%'});

engmmrj
سه شنبه 09 مهر 1392, 23:22 عصر
دستتون درد نکنه درست شد .
سپاس گذارم .