PDA

View Full Version : سوال: توی این کد جی کوئری از تابع live استفاده کردم ولی نمی تونه تعداد عناصر رو بشماره؟



idocsidocs
جمعه 15 اردیبهشت 1391, 23:06 عصر
$("#add").click(function(){
var num=0;
$('#js_div').each(function(){
$(this).live(function(){
if($(this).hasClass('js_table')){
num++;
}
});
});
if(num>5){
alert('امکان افزایش تعداد ردیف ها وجود ندارد');
}
return false;
});

Saber Mogaddas
شنبه 16 اردیبهشت 1391, 10:05 صبح
سلام
از این لینک (http://www.9lessons.info/2010/04/live-character-count-meter-with-jquery.html) استفاده کنید برای شمارنده..

موفق باشی..

idocsidocs
شنبه 16 اردیبهشت 1391, 11:57 صبح
این لینک برای کار من استفاده نمی شه.

من می خوام به یه تگ دایو چندتا تگ فرزن اضافه یا کم کنم.

اما اگر تعداد تگهای فرزند از 15 تا بیشتر شد، باید هشدار بده و بیشتر از 15 تگ فرزند ایجاد نکنه.

برای این کار باید چیکار کنم؟

Saber Mogaddas
شنبه 16 اردیبهشت 1391, 15:20 عصر
از این دستور برای شمارنده event استفاده کن ..


var num = 0;
$('#add').click(function()
{

num++;
});


اگه نشد صفحه مورد نظرتو برام بفرست تا منم تست بزنم..
موفق باشی..

Saber Mogaddas
شنبه 16 اردیبهشت 1391, 15:28 عصر
از این دستور هم می تونی برای معکوس این کار استفاده کنی..


var count = 15;
if (count == 0) {
alert('امکان افزایش تعداد ردیف ها وجود ندارد');
}
count--;

idocsidocs
شنبه 16 اردیبهشت 1391, 15:39 عصر
فرض کنید با جی کوئری چندتا تگ اضافه کردید، حالا می خواید با تابع live اونها رو بشمرید.

فرض کنید تگهای فرزند توی تگ با آی دی js_div رو با جی کوئری اضافه کردید.

حالا با کلیک روی لینک با آی دی a_id می خواید تعداد تگهای فرزند رو بشمارید. چطور اینکار رو می کنید؟



<a href="#">add</a>
<div id="js_div">

<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>

</div>

Saber Mogaddas
شنبه 16 اردیبهشت 1391, 18:04 عصر
سلام
برای بدست آوردن تعداد دیو های داخل parentDiv زیر


<div id="parentDiv">
<div>
<div></div>
<div></div>
</div>
<p>
<div>
</div>
</p>
</div>



از این دستور استفاده کنید..


function countDivs(element) {
var cnt = 0;
$(element).children().each(function(){
cnt += this.tagName === 'DIV' ? 1 : countDivs(this);
})
return cnt;
}

$(function(){
alert(countDivs($('#parentDiv').get(0)));
});


در نهایتم با alert مقدار دیو ها رو نمایش میدیم..
موفق باشی..

idocsidocs
شنبه 16 اردیبهشت 1391, 19:16 عصر
مشکل اینه که این تگها بصورت زنده و با جی کوئری ایجاد شده و باید از تابع لایو استفاده کنیم.

اگر تگها از قبل وجود داشتن که مشکلی نبود.

چطور می شه توی این کدی کگه دادید از تابع لایو استفاده کرد؟

mehdi.mousavi
شنبه 16 اردیبهشت 1391, 20:24 عصر
سلام.
لطفا از این پس سوالات jQuery رو در بخش jQuery ارسال کنید (و نه توسعه یا طراحی وب).

در مورد سوالتون، اگر فرض کنم این HTML شما باشه:

<body>
<a id="add" href="#">Add</a>
<a id="getTotal" href="#">Get Total</a>
<div id="js_div">
</div>
</body>


و با کد زیر، div های مورد نظر دونه به دونه (با هر بار Click روی Add) به Child های js_div اضافه بشه:

var index = 0;
$('#add').click(function () {
$('<div>' + (index++) + '</div>').prependTo($('#js_div'));
return false;
});


اونوقت براحتی میتونید با کد زیر، هر وقت روی لینک Get Total زده شد، تعداد Child Div های js_div رو بدست بیارید:

$('#getTotal').click(function () {
var len = $('#js_div>div').length;
alert('Total #: ' + len);
});


موفق باشید.

پاورقی: @صابر مقدس: این کدی که نوشته اید از امکانات jQuery به هیچ وجه استفاده نمیکنه. کافیه تا با property ی Length طول set مورد نظر رو بگیریم. همین. :)