Переключить элемент с jquery [duplicate]

Другим случаем, когда NullReferenceExceptions может случиться, является (неправильное) использование оператора as :

class Book {
    public string Name { get; set; }
}
class Car { }

Car mycar = new Car();
Book mybook = mycar as Book;   // Incompatible conversion --> mybook = null

Console.WriteLine(mybook.Name);   // NullReferenceException

Здесь Book и Car являются несовместимыми типами; a Car не может быть преобразован / передан в Book. Когда этот сбой завершается неудачно, as возвращает null. Используя mybook после этого, вы вызываете NullReferenceException.

В общем случае вы должны использовать cast или as, как показано ниже:

Если вы ожидаете преобразования типа в всегда преуспевает (т. е. вы знаете, какой объект должен быть впереди времени), тогда вы должны использовать cast:

ComicBook cb = (ComicBook)specificBook;

Если вы не уверены в типе, но хотите попробовать , чтобы использовать его как определенный тип, затем используйте as:

ComicBook cb = specificBook as ComicBook;
if (cb != null) {
   // ...
}

9
задан Felix Kling 9 September 2011 в 00:06
поделиться

2 ответа

Во втором примере ничего не следует выбирать. Прочитайте документацию в next :

Получите сразу следующий родственный элемент каждого элемента в наборе согласованных элементов. Если выбран селектор, он получает следующий брат, только если он соответствует этому селектору.

Вы должны использовать nextAll, чтобы получить всех братьев и отфильтровать их соответственно:

$("a[href*='#/link1']").nextAll('a[href*="#"]:first').click();

Ссылка: nextAll

18
ответ дан Felix Kling 26 August 2018 в 20:30
поделиться

Используйте .nextAll() и :first , чтобы получить следующий родственный брат, который соответствует, а не следующий брат , если он соответствует, например это:

$("a[href*='#/link1'").nextAll('a[href*="#"]:first').click();
5
ответ дан Nick Craver 26 August 2018 в 20:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: