2016-07-04 18 views
1

jqueryを使用してラベルをハイパーリンクに置き換えようとしています。しかし、それは私のために働いていません。私はそれぞれのリストアイテムに、その値に基づいて特定のハイパーリンクを持たせたい。ここで が 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> 

私はここで何をしないのですか?

+0

1) 'のvar $これは、$(this)を=;' 2) '$ this.val()' – Rayon

+0

あなたは、a)は、ドキュメント内のjQueryライブラリを含めていると、b)$でコードをwraping(ドキュメント).ready(function(){})? – gavgrif

+0

@gabgrifはい私はそうですが、私は上記のコードにこれを含めていませんでした –

答えて

0

ok - だからA) $ thisの使用はコメントのように変更する必要があるだけでなく、値を比較していることがわかりました。

if (parseInt($(this).val())== 1) 

またはこれが機能する文字列

if ($(this).val() == "1") 
+0

まだ更新されていません。 –

0

としてそれを維持:すべての入力値は、のparseInt()を使用してそれを変換のいずれかので数に変換それまでは文字列です!

<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> 
関連する問題