我试图用jquery取代一个超链接的标签。然而,它不适合我。我希望每个列表项都有一个基于其值的特定超链接。这是我试过的……JQuery代码:
$('.chkList li label').each(function () {
if ($(this).val() == "1")
$this.replaceWith('<a href="">link 1</a>');
if($(this).val() == "2")
$this.replaceWith('<a href="">link 2</a>');
});
asp.net代码:
<asp:CheckBoxList ID="chkList" runat="server" RepeatLayout="UnorderedList" CssClass="chkList">
<asp:ListItem Text="A" Value="1"></asp:ListItem>
<asp:ListItem Text="B" Value="2"></asp:ListItem>
<asp:ListItem Text="C" Value="3"></asp:ListItem>
</asp:CheckBoxList>
我在这里错过了什么?
ok -那么两件事A)你对$this的使用需要改变,就像在评论中一样,但我也刚刚意识到你正在比较价值。在转换为数字之前,所有输入值都是字符串,因此使用parseInt()将其转换为数字:
if (parseInt($(this).val())== 1)
或者保持为字符串
if ($(this).val() == "1")
成功了!
<script>
$('.chkList li').each(function () {
var myvalue = $(this).html();
if ($(myvalue).attr("value") == "1")
$(this).replaceWith('<a href="">link 1</a>');
if ($(myvalue).attr("value") == "2")
$(this).replaceWith('<a href="">link 2</a>');
});
</script>