Làm cách nào để tách một chuỗi ở `/` (dấu gạch chéo) đầu tiên và bao quanh một phần của chuỗi đó trong một `<span>`?


167

Tôi muốn định dạng ngày này : <div id="date">23/05/2013</div>.

Đầu tiên tôi muốn tách chuỗi ở đầu tiên /và có phần còn lại ở dòng tiếp theo. Tiếp theo, tôi muốn bao quanh phần đầu tiên trong <span>thẻ, như sau:

<div id="date">
<span>23</span>
05/2013</div>
23
05/2013

Tôi đã làm gì:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="date">23/05/2013</div>
<script type="text/javascript">
  $(document).ready(function() {
    $("#date").text().substring(0, 2) + '<br />';
  });
</script>

Xem JSFiddle .

Dường như không hiệu quả. Ai đó có thể giúp tôi với jQuery không?


1
Fiddle của bạn không được tham chiếu với jQueryỞ đây được cập nhật jsfiddle.net/K3D6d/2
Dhaval Marthak

Câu trả lời:


373

Sử dụng split()

Đoạn trích:

var data =$('#date').text();
var arr = data.split('/');
$("#date").html("<span>"+arr[0] + "</span></br>" + arr[1]+"/"+arr[2]);	  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="date">23/05/2013</div>

Vĩ cầm

Khi bạn tách chuỗi này ---> 23/05/2013trên/

var myString = "23/05/2013";
var arr = myString.split('/');

bạn sẽ nhận được một loạt các kích thước 3

arr[0] --> 23
arr[1] --> 05
arr[2] --> 2013

4
Bạn cũng có thể rút ngắn đoạn script như thế này:var arr = $('#date').text().split('/');
SearchForKnowledge

Cảm ơn, Adil. Câu trả lời của bạn là giá trị để từ bỏ một. Cảm ơn.
ankit suthar

10

Thay vì sử dụng chuỗi con với chỉ mục cố định, bạn nên sử dụng tốt hơn replace:

$("#date").html(function(t){
    return t.replace(/^([^\/]*\/)/, '<span>$1</span><br>')
});

Một lợi thế là nó vẫn hoạt động nếu đầu tiên /ở một vị trí khác.

Một ưu điểm khác của cấu trúc này là nó có thể mở rộng ra nhiều hơn một phần tử, ví dụ như cho tất cả những người thực hiện một lớp, chỉ bằng cách thay đổi bộ chọn.

Trình diễn (lưu ý rằng tôi phải chọn jQuery trong menu ở phần bên trái của cửa sổ jsfiddle)


2

Bạn nên sử dụng html ():

XEM DEMO

$(document).ready(function(){
    $("#date").html('<span>'+$("#date").text().substring(0, 2) + '</span><br />'+$("#date").text().substring(3));     
});


0

dùng cái này

<div id="date">23/05/2013</div>
<script type="text/javascript">
$(document).ready(function(){
  var x = $("#date").text();
    x.text(x.substring(0, 2) + '<br />'+x.substring(3));     
});
</script>

cái này không hoạt động. bạn đang gọi .texttrên x? bạn có chắc không ?
Mohammad Adil


-2
var str = "How are you doing today?";

var res = str.split(" ");

Ở đây biến "res" là loại mảng.

Bạn cũng có thể thực hiện điều này bằng cách tuyên bố nó là

var res[]= str.split(" ");

Bây giờ bạn có thể truy cập các từ riêng lẻ của mảng. Giả sử bạn muốn truy cập phần tử thứ ba của mảng, bạn có thể sử dụng nó bằng cách lập chỉ mục các phần tử mảng.

var FirstElement= res[0];

Bây giờ biến FirstEuity chứa giá trị 'How'

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.