JQuery - object.id не определен, когда это не должно быть

Если Вы находитесь на SQL Server 2017 или Azure, см. ответ Mathieu Renda .

у меня была подобная проблема, когда я пытался присоединиться к двум таблицам со связями "один ко многим". В SQL 2005 я нашел, что XML PATH метод может обработать конкатенацию строк очень легко.

, Если существует таблица, названная STUDENTS

SubjectID       StudentName
----------      -------------
1               Mary
1               John
1               Sam
2               Alaina
2               Edward

Результат, я ожидал, был:

SubjectID       StudentName
----------      -------------
1               Mary, John, Sam
2               Alaina, Edward

я использовал следующий T-SQL:

SELECT Main.SubjectID,
       LEFT(Main.Students,Len(Main.Students)-1) As "Students"
FROM
    (
        SELECT DISTINCT ST2.SubjectID, 
            (
                SELECT ST1.StudentName + ',' AS [text()]
                FROM dbo.Students ST1
                WHERE ST1.SubjectID = ST2.SubjectID
                ORDER BY ST1.SubjectID
                FOR XML PATH ('')
            ) [Students]
        FROM dbo.Students ST2
    ) [Main]

можно сделать то же самое более компактным способом, если Вы можете concat запятые вначале и использование substring для пропуска первого, таким образом, Вы не должны делать подзапроса:

SELECT DISTINCT ST2.SubjectID, 
    SUBSTRING(
        (
            SELECT ','+ST1.StudentName  AS [text()]
            FROM dbo.Students ST1
            WHERE ST1.SubjectID = ST2.SubjectID
            ORDER BY ST1.SubjectID
            FOR XML PATH ('')
        ), 2, 1000) [Students]
FROM dbo.Students ST2

6
задан 23 August 2009 в 02:14
поделиться

2 ответа

o - это ссылка на объект jQuery, а НЕ ссылка на элемент DOM. Внутри вашей функции validateRepeatPassword выполните:

alert( $(o).attr('id') );

Если вы хотите получить доступ к прямому свойству элемента DOM из объекта jQuery,

alert( o[0].id )

alert( o.get(0).id );
14
ответ дан 8 December 2019 в 14:45
поделиться

Внутри вашей функции o является jQuery объект, вы должны получить идентификатор с помощью функции attr для o .

alert(o.attr('id'));

Но если вы хотите работать напрямую с элементом DOM на вашем validateRepeatPassword функцию, вы можете передать ссылку на элемент:

validateRepeatPassword($('#id_repeatPassword').get(0));
2
ответ дан 8 December 2019 в 14:45
поделиться
Другие вопросы по тегам:

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