簡體   English   中英

如何使用jQuery向復選框添加ID和標簽標簽

[英]How to add ID and label tag to checkbox with jQuery

我的許多復選框之一具有以下HTML代碼(我無法訪問/修改):

<input type="checkbox" class="cat_input" name="subcategory1a" value="1">

我想將復選框變成一個切換開關,據我了解,我需要一個與該復選框的“ ID”相關聯的<label>標記。 不幸的是,上面的HTML代碼只有輸入標簽,沒有ID ,也沒有<label>標簽。

我知道要創建一個復選框切換,我需要每個復選框都具有唯一的ID和關聯的<label>標簽,例如:

 <input type="checkbox" class="cat_input" name="subcategory1a" value="1" ID="checkbox1"> <label for="checkbox1"></label>

我有兩個問題:

  • 如何將jQuery的ID<label>標簽添加到現有的<input>標簽中,以根據示例創建代碼?

  • 鑒於我有c。 40-50個復選框,每個復選框都需要有自己的IDlabel標簽,有沒有一種方法可以使jQuery代碼緊湊而不是復制粘貼代碼40-50x?

非常感謝您的幫助。 提前非常感謝您!

編輯

 <script> $('input[type="checkbox"]').each(function(i, v) { var checkbox = $(this); checkbox.attr("id", ("checkbox_" + (i + 1))) checkbox.after($("<label>").attr("for", checkbox.attr("id"))); }); </script> 
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="geodir-filter-cat gd-type-single gd-field-fieldset"><span>Header</span> <ul> <li><input type="checkbox" class="cat_input" name="subcategory1a" value="1" /> &nbsp;</li> <li><input type="checkbox" class="cat_input" name="subcategory1b" value="1" /> &nbsp;</li> </l> </div> 

您可以遍歷每個復選框,並在其后添加標簽。

例:

$('input[type="checkbox"]').each(function() {
     var checkbox = $(this);
     checkbox.after($("<label>").attr("for", checkbox.attr("id")));
});

如果您的初始input沒有設置id屬性,請先手動設置它:

$('input[type="checkbox"]').each(function(i, v) {
     $(this).attr("id", ("checkbox_" + i))
     $(this).after($("<label>").attr("for", $(this).attr("id")));
});

編輯1:

將此代碼放入<head>無效,因為該代碼尋址的內容當時尚未加載。 在關閉</body>標記之前放置此代碼,或使用ready函數。

$(function() {
    // code above is here
});

根據您給定的標記,請參見以下內容:

   $('.cat_input').each(function() {
     var checkbox = $(this);
     checkbox.attr('id', 'checkbox'+checkbox.index()); // Adding ID attribute
     checkbox.after($("<label for='checkbox"+ checkbox.index() +"'>").text(checkbox.val())); // Adding label with for attribute
    });

和HTML我假設如下:

<input type="checkbox" class="cat_input" name="subcategory1a" value="1">
<input type="checkbox" class="cat_input" name="subcategory1a" value="2">
<input type="checkbox" class="cat_input" name="subcategory1a" value="3">
<input type="checkbox" class="cat_input" name="subcategory1a" value="4">
<input type="checkbox" class="cat_input" name="subcategory1a" value="5">

我一直喜歡像<label><input /><span></span></label>這樣來做我,我認為它易於使用並設置樣式/ css

 $(document).ready(function(){ $('.cat_input').each(function(i){ // index start from 0 i = i + 1; $(this).val(i).attr('id' , 'checkbox' + i).wrap('<label></label>').closest('label').append('<span>'+i+'</span>'); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="checkbox" class="cat_input" name="subcategory1a" /> <input type="checkbox" class="cat_input" name="subcategory1a" /> <input type="checkbox" class="cat_input" name="subcategory1a" /> <input type="checkbox" class="cat_input" name="subcategory1a" /> <input type="checkbox" class="cat_input" name="subcategory1a" /> <input type="checkbox" class="cat_input" name="subcategory1a" /> <input type="checkbox" class="cat_input" name="subcategory1a" /> <input type="checkbox" class="cat_input" name="subcategory1a" /> 

第一次輸入的代碼將是

<label>
  <input type="checkbox" class="cat_input" name="subcategory1a" value="1" id="checkbox1"/>
  <span>1</span>
</label>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM