Я не уверен, является ли это jquery, javascript или просто причудой в браузере, но учтите этот код:
for(rowIdx=0;rowIdx<theResultSet.rows.length;rowIdx++) {
thisLine = $("#TestTemplateLI").clone().attr({'id':'test_'+rowIdx}).appendTo("#test_exerciseListUL");
thisLine.find('[href*="#pageExercise_EXERCISENUMBER"]').each( function(i) {this.href = this.href.replace('EXERCISENUMBER', rowIdx)} );
}
Цель приведенного выше кода - клонировать элемент списка (<LI>
, внедренный ниже) HTML-фрагмент, измените его, чтобы он обращался к якору в другом месте страницы, а затем вставьте его в неупорядоченный список (<UL>
).Все это работает, используя чудеса jquery.Проблема в том, что после изменения якорь не работает.Более того, после того, как я изменю HREF программно, он возвращает полный URL, а не просто ссылку на привязку.Пример:
<UL id='testTemplate' style="display:none">
<LI class='arrow' id='testTemplateLI'>
<a href='#pageExercise_EXERCISENUMBER'> <!-- THIS is the beast in question -->
<DIV class='LABELCLASS test_labelContainer'>
<TABLE height=100% width=100%>
<TR valign='center'><TD align='center'>EXERCISELABEL</TD></TR>
</TABLE>
</DIV>
<IMG id='test_checkmark_EXERCISENUMBER' class='test_checkMark_off' src="assets/checkmark.png" width=60px height=54px>
<DIV id='test_item_EXERCISENUMBER' class='test_exNameContainer'>
<TABLE height=100% width=100%>
<TR valign='center'><TD>EXERCISENAME</TD></TR>
</TABLE>
</DIV>
</a>
</LI>
</UL>
Итак, происходят две вещи.Во-первых, измененный якорь просто не работает, а во-вторых, что следует изменить с " href = '# pageExercise_EXERCISENUMBER' " на " href = '# pageExercise_0' " (или любым другим текущимИндекс строки ('rowIdx') изменяет его на: " href = 'http://www.mydomain.com/themainpage.php#pageExercise_0'".
Мне нужен способ заставить javascript перестать" помогать "мне в href. Что касается вопроса № 1, я думаю,это связано с # 2.
Заранее спасибо,
Скотт.