Переход на jQuery 1.5 ломает селектор - PullRequest
0 голосов
/ 22 февраля 2011

только что обновлен до jQuery 1.5, и теперь кажется, что find () имеет проблемы с несколькими selctores:

var $AlertColumn = $('[name=TABLE_1] tr').find('.SAPBEXstdData:eq(9), .SAPBEXstdDataOdd:eq(9), td.SAPBEXaggData:eq(9)');

с 1.5 (и IE7), вещь зависает в IE7 с всплывающим сообщением об ошибке послев то время как скрипт работает вечно.

Он отлично работает в 1.4.2.

хорошо, вот код (в первую строку данных), я должен работать над Alert-Rowкоторый является девятым с теми классами, которые используются в find ():

    <TABLE class=SAPBEXCellspacing cellSpacing=1 cellPadding=0 width=1250 border=0 name="TABLE_1" sizcache="5" sizset="20"><TBODY sizcache="5" sizset="20">
<TR sizcache="5" sizset="21">
<TD noWrap colSpan=19 sizcache="5" sizset="21">
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0 sizcache="5" sizset="21">
<FORM name=SAPBWUForm5 action=/sap/bw/BEx?SAP-LANGUAGE=DE&amp;ITEM=TABLE_1&amp;STATE_ID=4KXJZOX5URFHG6BQFFTKAJ0OH&amp;STATELESS=X&amp;LAST_MESSAGE_ID=0 method=post sizcache="5" sizset="21">
<TBODY sizcache="5" sizset="21">
<TR sizcache="5" sizset="22">
<TD class=SAPBEXScrollVert noWrap sizcache="5" sizset="22">
<TABLE cellSpacing=0 cellPadding=1 border=0 sizcache="5" sizset="22">
<TBODY sizcache="5" sizset="22">
<TR>
<TD class=SAPBEXTxtStd noWrap><IMG title="Erste Zeile" alt="Erste Zeile" src="/sap/bw/Mime/BEx/Icons/page_first_row_inact.gif" border=0></TD>
<TD class=SAPBEXTxtStd noWrap><IMG title="Vorherige Zeilen" alt="Vorherige Zeilen" src="/sap/bw/Mime/BEx/Icons/page_up_inact.gif" border=0></TD>
<TD class=SAPBEXTxtStd noWrap>&nbsp;<LABEL>Zeile</LABEL></TD>
<TD noWrap><INPUT class=SAPBEXTxtFldright id=DATA_ROW_FROM title="Zeile - Maximale Anzahl: 170" onchange=document.SAPBWUForm5.submit() size=3 value=1 name=DATA_ROW_FROM></TD>
<TD class=SAPBEXTxtStd noWrap>/&nbsp;170&nbsp;</TD>
<TD class=SAPBEXTxtStd noWrap><A title="Nächste Zeilen" href="JavaScript:SAPBW(5,'','','68')"><IMG title="Nächste Zeilen" alt="Nächste Zeilen" src="/sap/bw/Mime/BEx/Icons/page_down.gif" border=0></A></TD>
<TD class=SAPBEXTxtStd noWrap><A title="Letzte Zeile" href="JavaScript:SAPBW(5,'','','170')"><IMG title="Letzte Zeile" alt="Letzte Zeile" src="/sap/bw/Mime/BEx/Icons/page_last_row.gif" border=0></A></TD></TR></TBODY></TABLE></TD></FORM></TR></TBODY></TABLE></TD></TR>
<TR></TR>
<TR>
<TD class=SAPBEXchaText noWrap>Profit Center</TD>
<TD class=SAPBEXchaText noWrap>Projektleiter</TD>
<TD class=SAPBEXchaText noWrap colSpan=2>Projekt</TD>
<TD class=SAPBEXchaText noWrap>akt. Status</TD>
<TD class=SAPBEXchaText noWrap>akt. Status Dat.</TD>
<TD class=SAPBEXchaText noWrap>Kredit Datum</TD>
<TD class=SAPBEXchaText noWrap>letzte Buchung</TD>
<TD class=SAPBEXstdItem noWrap>Kredit</TD>
<TD class=SAPBEXstdItem noWrap>Ist Q1 2010</TD>
<TD class=SAPBEXstdItem noWrap>Ist Q2 2010</TD>
<TD class=SAPBEXstdItem noWrap>Ist Q3 2010</TD>
<TD class=SAPBEXstdItem noWrap>Ist Q4 2010</TD>
<TD class=SAPBEXstdItem noWrap>Kredit %</TD>
<TD class=SAPBEXstdItem noWrap>FC Q3</TD>
<TD class=SAPBEXstdItem noWrap>FC Q4</TD>
<TD class=SAPBEXstdItem noWrap>Projektende</TD>
<TD class=SAPBEXstdItem noWrap>Alert</TD>
<TD class=SAPBEXstdItem noWrap>Notizen</TD></TR>
<TR>
<TD class=SAPBEXstdItem noWrap rowSpan=7>PC100</TD>
<TD class=SAPBEXstdItem noWrap rowSpan=3>Ammann Conrad</TD>
<TD class=SAPBEXstdItem noWrap>G000034</TD>
<TD class=SAPBEXstdItem noWrap>Techn. Zusammenarbeit China</TD>
<TD class=SAPBEXstdItem noWrap>k.a.</TD>
<TD class=SAPBEXstdItem noWrap>#</TD>
<TD class=SAPBEXstdItem noWrap>#</TD>
<TD class=SAPBEXstdItem noWrap>#</TD>
<TD class=SAPBEXstdData title=0 noWrap>0</TD>
<TD class=SAPBEXstdData noWrap>&nbsp;</TD>
<TD class=SAPBEXstdData noWrap>&nbsp;</TD>
<TD class=SAPBEXstdData noWrap>&nbsp;</TD>
<TD class=SAPBEXstdData title=0 noWrap>0</TD>
<TD class=SAPBEXstdData noWrap>&nbsp;</TD>
<TD class=SAPBEXstdData noWrap>&nbsp;</TD>
<TD class=SAPBEXstdData noWrap>&nbsp;</TD>
<TD class=SAPBEXstdData noWrap>&nbsp;</TD>
<TD class=SAPBEXstdData noWrap>I NEED THIS ONE (9th) of every Data Row</TD>
<TD class=SAPBEXstdData title=0 noWrap>
<DIV class=notiz style="TEXT-ALIGN: left"></DIV></TD></TR>
<TR>
<TD class=SAPBEXstdItem noWrap>G000164</TD>
<TD class=SAPBEXstdItem noWrap>Tag der offenen Tür</TD>...

........

Ответы [ 3 ]

0 голосов
/ 22 февраля 2011

Два разных решения:

  • Если это не сломано, не исправляйте это: оставайтесь с jQuery 1.4.2. или ...
  • Перепишите селектор, чтобы он выбирал более эффективно. Начните с $('table[name=TABLE_1] tr') и используйте более конкретный селектор в .find() - возможно, используйте .children() вместо .find()? Нужно было бы увидеть фактическую разметку для более конкретных предложений.

Редактировать Ваша разметка ужасно недействительна. form не является действительным потомком table, name не является допустимым атрибутом table (как указано @Capsule), вы не используете nowrap правильно ... Я рекомендую вам ознакомьтесь с W3C Validator и отправляйтесь оттуда.

0 голосов
/ 22 февраля 2011

$ ('[name = TABLE_1] tr') кажется недействительным, поскольку у TABLE или TBODY нет атрибута NAME (исправьте меня, если я ошибаюсь).

0 голосов
/ 22 февраля 2011

Попробуйте поставить ввод перед вашим селектором (например, input[name=TABLE_1] tr), потому что может случиться так, что jQuery просматривает каждый элемент, включая span, div, h1s и т. Д. *

...