2013-02-25 3 views
1
<div class="posts"> 
<input id="chkbox_0" type="checkbox" value="chck_0" name="list" style="float:left;height:95px; width:15px;"> 
<div class="title box " onclick="thisimg(0,252250)"> 
<div class="click" style="float:right;"> 
Clicks 
<br> 
<div id="count_0"> 0 </div> 
</div> 
</div> 
</div> 

<div class="posts"> 
<input id="chkbox_1" type="checkbox" value="chck_1" name="list" style="float:left;height:95px; width:15px;"> 
<div class="title box " onclick="thisimg(0,252250)"> 
<div class="click" style="float:right;"> 
Clicks 
<br> 
<div id="count_1"> 0 </div> 
</div> 
</div> 
</div> 

<div class="posts"> 
<input id="chkbox_2" type="checkbox" value="chck_2" name="list" style="float:left;height:95px; width:15px;"> 
<div class="title box " onclick="thisimg(0,252250)"> 
<div class="click" style="float:right;"> 
Clicks 
<br> 
<div id="count_2"> 6 </div> 
</div> 
</div> 
</div> 

<div class="posts"> 
    <input id="chkbox_3" type="checkbox" value="chck_3" name="list" style="float:left;height:95px; width:15px;"> 
<div class="title box " onclick="thisimg(0,252250)"> 
<div class="click" style="float:right;"> 
Clicks 
<br> 
<div id="count_3"> 0 </div> 
</div> 
</div> 
</div> 

Я работаю над этим в течение 7 дней без успеха, поэтому предполагаю, что задаю вопрос неправильно. Поэтому я пытаюсь установить флажок, соответствующий индексу элемента click, который равен 0. NOT INDEX 0, а NUMBER ZERO. У меня есть 4 фрагмента идентичного кода, за исключением индексов. Время от времени количество кликов в основном - ZERO, что важно. Я хочу, чтобы флажок был проиндексирован так же, как клики, которые являются ZERO. Это то, что я пробовал:JQuery Флажок, соответствующий ID FILTER

var allZeros = $("[id^=count]:contains(0)").css('color', 'red').each(function(i) { 
    $("input:checkbox").trigger('click'); 
}); 

Это проверяет все коробки.

Я также попытался

$("input:checkbox").eq(i).trigger('click'); 
$("input:checkbox").trigger('click').attr('id'); 

оба из которых используют индекс allZeros и проверяет, что количество ящиков. Например, в примере у меня есть 3 allZeros, поэтому он имеет флажки первых 3, но то, что он должен делать, это checkbox the first 2 ZEROS, пропустить тот, у которого 6 кликов и флажок 3-го ZERO.

Вы можете просмотреть страницу здесь: http://www.zyngapokerchipsfree.com/ она имеет от 60 до 70 элементов на странице. Надеюсь, это намного яснее. Спасибо за вашу помощь.

ответ

1

Вы можете использовать идентификаторы соответствующих элементов.

var $c = $("input[type=checkbox]"); 

$("div[id^=count]:contains(0)").css('color', 'red').each(function(i) { 
    var id = this.id.replace('count', 'chkbox'); 
    $c.filter('[id="'+ id +'"]').prop('checked', true); 
}); 

В случае, если вы хотите, чтобы выбрать элементы, которые их содержание текста просто 0 и не 10, 20 ... Вы можете использовать filter метод:

$("div[id^=count]").filter(function(){ 
    return $.trim($(this).text()) === '0'; 
}).css('color', 'red').each(function(i) { 
    var id = this.id.replace('count', 'chkbox'); 
    $c.filter('[id="'+ id +'"]').prop('checked', true); 
}); 
+0

Ты прибил его! благодаря – Frank

0

Чтобы проверить флажок необходимо использовать

$('checkbox').prop('checked', 'checked') 

В вашем случае

var allZeros = $("div[id^=count]:contains(0)").css('color', 'red').each(function(){ 
    var id = $(this).attr('id').substring(6); 
    $('#chkbox_'+id).prop('checked', 'checked') 
}) 

Демо: Fiddle

+1

Это незначительный пункт .. . '.prop ('checked', 'checked')' работает, но точкой 'prop()' является установка фактического значения __property__ в элементе DOM, а не 'attribute'. Поэтому '.prop ('checked', true)' более корректно. Установка 'checked =" checked "' имеет больше общего с XHTML, который в любом случае переоценивается. –

+0

@MattB. спасибо за исправление –

+0

Отличная работа и спасибо за объяснение. – Frank

 Смежные вопросы

  • Нет связанных вопросов^_^