gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 21:25:55 24 4
gpt4 key购买 nike

我不确定这是否是 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com