Как это сделать с помощью jQuery - document.getElementById (& ldquo; selectlist & rdquo;). Value

Я не думаю , вы можете сделать это напрямую, используя GetMethod. Я подозреваю, что вам придется перебирать все методы, называемые Bar, а затем:

  • Убедитесь, что метод имеет один параметр типа
  • Убедитесь, что метод имеет один normal parameter
  • Используйте параметр type для создания Func<T>typeof(Func<>).MakeGenericType) и убедитесь, что тип параметра соответствует этому.

LINQ хорош для этого Такие вещи. Полный образец:

using System;
using System.Reflection;
using System.Linq;

public class Foo
{
    public void Bar<T>(Func<T> f) { }
    public void Bar<T>(Action<T> a) { }
}

class Test
{
    static void Main()
    {
        var methods = from method in typeof(Foo).GetMethods()
                      where method.Name == "Bar"
                      let typeArgs = method.GetGenericArguments()
                      where typeArgs.Length == 1
                      let parameters = method.GetParameters()
                      where parameters.Length == 1
                      where parameters[0].ParameterType == 
                            typeof(Func<>).MakeGenericType(typeArgs[0])
                      select method;

        Console.WriteLine("Matching methods...");
        foreach (var method in methods)
        {
            Console.WriteLine(method);
        }
    }
}

В основном дженерики и отражение действительно неприятны в сочетании, я боюсь: (

139
задан James Wiseman 2 June 2011 в 18:27
поделиться

4 ответа

$('#selectlist').val();
148
ответ дан 23 November 2019 в 23:08
поделиться

«Эквивалент» - это слово здесь

Хотя ...

$('#selectlist').val();

... эквивалентно ...

document.getElementById("selectlist").value

... стоит отметить, что ...

$('#selectlist')

... хотя «эквивалент» не то же самое, что ...

document.getElementById("selectlist")

... поскольку первый возвращает объект jQuery, а не объект DOM.

Чтобы получить объект (ы) DOM из jQuery, используйте следующее:

$('#selectlist').get(); //get all DOM objects in the jQuery collection
$('#selectlist').get(0); //get the DOM object in the jQuery collection at index 0
$('#selectlist')[0]; //get the DOM objects in the jQuery collection at index 0
212
ответ дан 23 November 2019 в 23:08
поделиться

Хаос - это то, что нужно, хотя для подобных вопросов вы должны проверить Документацию JQuery онлайн - это действительно довольно всеобъемлющий. Функция, которая вам нужна, называется «селекторы jquery»

Обычно вы выполняете $ ('# ID'). Val () - .afterwards может выполнять ряд действий с возвращаемым элементом. из селектора. Вы также можете выбрать все элементы в определенном классе и сделать что-нибудь с каждым из них. Ознакомьтесь с документацией, чтобы найти хорошие примеры.

9
ответ дан 23 November 2019 в 23:08
поделиться

В некоторых случаях я не могу вспомнить, почему, но $ ('# selectlist'). Val () не всегда возвращает правильное значение элемента, поэтому Вместо этого я использую $ ('# selectlist option: selected'). Val () .

0
ответ дан 23 November 2019 в 23:08
поделиться
Другие вопросы по тегам:

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