Это мой первый вопрос, поэтому, пожалуйста, дайте мне знать, если я сделал что-то неправильно. Во всяком случае, то, что я пытаюсь сделать, - по завершении документа - проверить, проверяются ли какие-либо флажки, а затем исчезать эти элементы абзаца, как указано в самом внутреннем коде ниже. Что касается кода, который действительно делает fadeTo, я знаю его правильно, потому что я использую его в другой части кода. И я знаю, что он нашел хотя бы один проверенный элемент, потому что я получил "предупреждение", показанное в приведенном ниже коде. Однако связанные элементы не исчезают. Какие-либо предложения?
Дополнительная информация: флажки корректно проверены (по остальной части моего приложения) в html, когда я смотрю на исходный код. Флажки - asp.net.
$(document).ready(function () {
if ($("input[type='checkbox']:checked").length > 0) {
$(this).closest('p').fadeTo('mid', '0.25')
$(this).closest('p').children().fadeTo('mid', '0.25')
$(this).closest('p').next().children('li').fadeTo('mid', '0.25')
alert("It worked.")
};
});
Внутри обработчика dom dom this
относится к объекту document
.
Из того, что я вижу, вы пытаетесь настроить таргетинг на элемент-предок (p
) отмеченных флажков и несколько других связанных с ним элементов.
Поэтому сначала вам нужно получить элементы p
для которых вы можете использовать $("input[type='checkbox']:checked").closest('p')
затем найти другие элементы по отношению к этим элементам.
$(document).ready(function () {
var $ps = $("input[type='checkbox']:checked").closest('p');
$ps.fadeTo('mid', '0.25')
$ps.children().fadeTo('mid', '0.25')
$ps.next().children('li').fadeTo('mid', '0.25')
});
Скорее всего, исходный код не проверял .length
но вызвал .each()
на множестве.
$(document).ready(function () {
$("input[type='checkbox']:checked").each(function() { // only this line was altered
$(this).closest('p').fadeTo('mid', '0.25')
$(this).closest('p').children().fadeTo('mid', '0.25')
$(this).closest('p').next().children('li').fadeTo('mid', '0.25')
alert("It worked.")
};
});
this
относится к документу здесь!document
не имеетp
качестве предка