0

jqueryを使用してリストの特定のクローンを選択するにはどうすればよいですか?

 <ul id=testList>
      <li><input type=checkbox" /><p> Test A </p></li>
      <li><input type=checkbox" /><p> Test B </p></li>
      <li><input type=checkbox" /><p> Test C </p></li>
      <li><input type=checkbox" /><p> Test D </p></li>
      <li><input type=checkbox" /><p> Test E </p></li>
 </ul>

     var $cloneList = $("#testList").clone();

     $cloneList.find("li input:checked")each(function()
     {
          alert($(this.outerHTML);
     });

上記のjqueryコードで達成しようとしている出力は、選択されているチェックボックスを選択して入力タグを削除するだけで、以下に一覧表示されます。

    <li><p> Test E </p></li>
4

1 に答える 1

0

要求したものを正確に取得するには、コードは次のようになります。

$(document).ready(function(){
    $('#clone').click(clone);
});

function clone(){
    clonedList = $('#testList').clone();
    clonedList.find('input[type=checkbox]:not(:checked)').each(function(){
        $(this).parent().remove();
    });
    clonedList.find('input').remove();
    alert(clonedList.html());
}

作業中のフィドルをチェックしてください:http://jsfiddle.net/Kh476/3/

私が指摘したいことの1つは、適切なラベルのないチェックボックスが私を狂わせることです。代わりにこれを行ってください:

<label><input type="checkbox" name="group1" value="A"/> Check This A</label>    ​

これにより、スクリーンリーダーは、どのテキストがどのチェックボックスに対応しているかを把握でき、クリックするボックスを見つける必要がなく、ユーザーがテキストをクリックできるようになります。はるかに使いやすい。

externalHtmlを取得するには、次の回答を確認してください。選択した要素の外部HTMLを取得する

于 2012-04-05T04:23:43.283 に答える