View Full Version : تعیین سلکتور پدر و فرزندی در css
ASedJavad
سه شنبه 05 اردیبهشت 1391, 11:01 صبح
سلام
چطور میشه سلکتوری تعریف کرد که مثلا بگیم X هایی که فرزندی به اسم a دارن.
یعنی یه چیزی برعکس زیر (a هایی که پدرشون x هست):
.x .a{}
Beginner2013
سه شنبه 05 اردیبهشت 1391, 12:43 عصر
<style>
.TagsThatHaveSpan{
color:blue;
}
</style>
<div>
<i>Barnamenevis1</i><br>
<span>Barnamenevis2</span>
</div>
<hr/>
<div>
<i>Barnamenevis3</i><br>
<p>Barnamenevis4</p>
</div>
<hr/>
<div>
<span>Barnamenevis5</span><br>
<p>Barnamenevis6</p>
</div>
<script>
var divs=document.getElementsByTagName("div");
for(var i=0;i<divs.length;i++)
{
var childs=divs[i].childNodes;
for(var j=0;j<childs.length;j++)
{
if(childs[j].tagName=="SPAN")
{
divs[i].className="TagsThatHaveSpan";
break;
}
}
}
</script>
cyrusthegreat
سه شنبه 05 اردیبهشت 1391, 12:45 عصر
سلام
چطور میشه سلکتوری تعریف کرد که مثلا بگیم X هایی که فرزندی به اسم a دارن.
یعنی یه چیزی برعکس زیر (a هایی که پدرشون x هست):
.x .a{}
دوست عزیز
با استفاده از CSS محض اینکار امکان پذیر نیست. تنها راه حل موجود JS هست که دوست عزیز blogeen اشاره کردند.
Beginner2013
سه شنبه 05 اردیبهشت 1391, 12:55 عصر
می تونید کدی رو که نوشتم به سادگی به یه تابع تبدیل کنید که یک یا دو آرگومنت میگیره و بعد با یکبار فراخونی در صفحه،از آرگومنتی که به تابع ارسال کردی در استایل ها استفاده کنی.
مثلا
addClass("TagsThatHaveHref","A");
ASedJavad
چهارشنبه 06 اردیبهشت 1391, 10:48 صبح
می تونید کدی رو که نوشتم به سادگی به یه تابع تبدیل کنید
سلام
ممنون از جوابتون
حالا که بحث تابع رو مطرح کردین، یه سوال ضمنی هم ازتون بپرسم
فرض کنیم تو هدر صفحه یه تابع تعریف کردیم که یک مقداری رو برم یگردونه
حالا میخوام تو هر دیوی که تابع رو فراخونی کردم، خروجی تابع بشه متن دیومون.
مشکل من چگونگی فراخوانی تابع تو یه دیوه.
هر چی جستجو هم کردم، تمام توابع تو رویداد onclick فراخونی شده بودن.
iker-casillas
چهارشنبه 06 اردیبهشت 1391, 23:34 عصر
استفاده کردن از تگ اسکریپت داخل DIV اشتباه هستش (اینو تو یه مقاله از گوگل خوندم)
شما می تونید یه event تو صفحه بذارید تا این کار رو براتون انجام بده
به این صورت:
id دی.آی.وی. هایی که می خواید درونشون این تابع صدا بشه رو با استفاده از یه جدا کننده (seprator) توی یه input از نوع hidden بریزید.
<input type="hidden" id="idPlace" value="id1,id2,id3"/>
بعد این کد رو قبل از تگ بسته body بنویسید.
window.onload = function(){
var idValues = document.getElementById('idPlace').value;
var idValuesArray = idValues.split(',');
for(var i = 0; i < idValuesArray.length; i++){
document.getElementById(idValuesArray[i]).innerHTML = yourFunction();
}
}
ASedJavad
شنبه 16 اردیبهشت 1391, 14:17 عصر
استفاده کردن از تگ اسکریپت داخل DIV اشتباه هستش (اینو تو یه مقاله از گوگل خوندم)
یعنی نشدنیه یا بهینه نیست؟
اگه نشدنیه که هیچ، ولی اگه شدنیه لطف کنید بگید چطوری و اینکه مشکلش چیه؟
cyrusthegreat
شنبه 16 اردیبهشت 1391, 14:34 عصر
سلام
ممنون از جوابتون
حالا که بحث تابع رو مطرح کردین، یه سوال ضمنی هم ازتون بپرسم
فرض کنیم تو هدر صفحه یه تابع تعریف کردیم که یک مقداری رو برم یگردونه
حالا میخوام تو هر دیوی که تابع رو فراخونی کردم، خروجی تابع بشه متن دیومون.
مشکل من چگونگی فراخوانی تابع تو یه دیوه.
هر چی جستجو هم کردم، تمام توابع تو رویداد onclick فراخونی شده بودن.
دوست عزیز
رویداد ها زیاد هستن. onclick, onsubmit و غیره که برای کار شما می شه onload. یعنی با استفاده از attr ای به نام onload اون تابع رو فراخونی کنید.
ASedJavad
شنبه 16 اردیبهشت 1391, 15:26 عصر
اینو میدونم
می خواستم بدونم میشه مقدار خروجی تابع رو مستقیما به عنوان متن دیومون قرار بدیم (بدون استفاده از چیزی مثلthis.innerHTML )
Beginner2013
دوشنبه 18 اردیبهشت 1391, 07:32 صبح
یعنی نشدنیه یا بهینه نیست؟
اگه نشدنیه که هیچ، ولی اگه شدنیه لطف کنید بگید چطوری و اینکه مشکلش چیه؟
<script>
function Write1(str)
{
document.write(str);
}
function Write2(str)
{
return str;
}
</script>
<div style='color:blue'>
<script>
Write1('Within Blue Div');
</script>
</div>
<br>
<div style='color:red'>
<script>
document.write(Write2('Within Red Div'));
</script>
</div>
تو فایر و ie جواب میده،بقیه رو نمیدونم.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.