Во-первых, если люди потратят время на то, чтобы предоставить вам ответы, вы, по крайней мере, можете приложить усилия для принятия этих ответов .
Во-вторых, в отношении вашего вопроса вы можете использовать либо filter()
или проверьте, является ли значение пустым:
$('input[value!=""]:checkbox').addClass('selected');
http://jsfiddle.net/niklasvh/pEK3c/
или
$('input:checkbox').filter(function(){
return this.value.length;
}).addClass('selected');
пример: http://jsfiddle.net/niklasvh/duAB8/
edit
Что касается вопроса, почему бы просто не использовать $('input[value]')
для проверки наличия value
, во-первых, это зависит от того, хотите ли вы знать, пусто ли оно, иливообще нет, а во-вторых, и, возможно, самое главное, хотите ли вы, чтобы оно работало согласованно в разных браузерах?
Следующая разметка:
<input type="checkbox" value="2" />
<input type="checkbox" value="" />
<input type="checkbox" />
<input type="checkbox" value="23" title="a" />
Со следующим селектором:
$('input:[value]:checkbox').prop('checked',true);
даст следующие результаты:
Chrome 11, X - - X
FF4, X - X X
IE 8, X - X X
Итак, вам интересно узнать, определен ли атрибут или он пуст?Если первый, вы можете ожидать дифференцированных результатов для этого селектора.Тогда как в двух первых примерах оба дают согласованные результаты для X - - X
.
Если бы вы искали атрибут [title]
...
, то было бы совсем по-другому.