javascript - HREF 的修改超出了我的控制范围...?

标签 javascript jquery href

我不确定这是否是 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 片段,修改它以寻址页面上其他位置的 anchor ,然后将其插入无序列表 ( <UL> )。所有这一切都利用了 jquery 的奇迹。问题是,一旦修改后, anchor 似乎就不起作用了。此外,在我以编程方式修改 HREF 后,它返回一个完整 URL,而不仅仅是 anchor 引用。示例:

<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>

所以,有两件事正在发生。一,修改后的 anchor 根本不起作用,二,应该将“href='#pageExercise_EXERCISENUMBER'”修改为“href='#pageExercise_0'”(或其他内容)当前行索引('rowIdx')将其修改为:“href='http://www.mydomain.com/themainpage.php#pageExercise_0'”。

我需要一种方法来告诉 javascript 停止在 href 上“帮助”我。至于问题 #1,我认为它与问题 #2 有关。

提前致谢,

斯科特。

最佳答案

this.href

将返回 anchor 指向的完全限定 URL。

您可以使用 jQuery 的 attr 函数返回您想要的内容:

var $this = $(this);
$this.attr("href", $this.attr("href").replace('EXERCISENUMBER', rowIdx));

Here这是一篇很好的文章,解释了 .attr("href") 如何“标准化”

关于javascript - HREF 的修改超出了我的控制范围...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5041404/

相关文章:

javascript - jqGrid无法从服务器加载xml数据

javascript - javaScript 不是 DOM 的一部分吗?

Jquery选择器: How to: change the src attribute of an image tag on link hover

javascript - 使用javascript编辑所有外部链接

javascript - 无法让 cordovaCapture 在 ionic 上使用 ngCordova 工作

javascript - Angular 4 Material 工具栏颜色不变

jquery - 布局/索引问题?

javascript - window.location.href 未分配/重定向

javascript - 如何将 HREF 设置为输入字段和选择列表中的文本?

php - 如何在警报框中显示 codeigniter 表单验证消息