PDA

View Full Version : سوال: تغییر رنک li بر اساس شمارش



website.expert
جمعه 13 بهمن 1391, 18:19 عصر
سلام،
من یه div دارم که تو ش دوتا ul وجود داره.
تعداد li های موجود در کدوم از ul ها هم با هم برابرن.(مثلاً تو هر ul بیست تا li وجود داره)
میخواستم بدونم آیا راهی هست وقتی روی یه li کلیک میکنم li مشابه در ul دیگه رنگش تغییر کنه.
مثلاً اگه رو پنجمین li کلیک کردم li پنجم ul دیگه هم رنگش تغییر کنه.
متشکر.

Beginner2013
جمعه 13 بهمن 1391, 21:28 عصر
سلام،
من یه div دارم که تو ش دوتا ul وجود داره.
تعداد li های موجود در کدوم از ul ها هم با هم برابرن.(مثلاً تو هر ul بیست تا li وجود داره)
میخواستم بدونم آیا راهی هست وقتی روی یه li کلیک میکنم li مشابه در ul دیگه رنگش تغییر کنه.
مثلاً اگه رو پنجمین li کلیک کردم li پنجم ul دیگه هم رنگش تغییر کنه.
متشکر.

سلام.


<div>

<ul>
<li onClick="action(this)">
LI1InUL1
</li>
<li onClick="action(this)">
LI2InUL1
</li>
</ul>


<ul>
<li>
LI1InUL2
</li>
<li>
LI2InUL2
</li>
</ul>

</div>اینم کد جاوااسکریپت:

function action(el)
{
var lis=el.parentNode.getElementsByTagName("li");
var len=lis.length;
var currentIndex;
for(var i=0;i<len;i++)
{
if(lis[i]==el)
{
currentIndex=i;
break;
}

}

el.parentNode.parentNode.getElementsByTagName("ul")[1].getElementsByTagName("li")[currentIndex].style.backgroundColor='yellow';

}


با کلیک روی li های اول،li معادل زرد رنگ میشه.

website.expert
جمعه 13 بهمن 1391, 22:54 عصر
ممنون دوست عزیز از لطفت.
من الان از روش شما استفاده کردم،ولی آیا از روشی به غیر از for نمیشه استفاده کرد؟چون تعدادش بالاست.
آیا index ندارن؟چون من شماره خطی که باید رنگی بشه رو دارم.
یا از sibiling یا مثل اون نمیشه استفاده کرد؟با هم برادر نیستند؟
مرسی.

website.expert
یک شنبه 15 بهمن 1391, 21:09 عصر
ممنون دوستان،
از eq استفاده کردم مشکل حل شد.