Làm cách nào để tôi nhận được giá trị của <span> khi sử dụng jQuery?


148

Đây là cơ bản.

Làm cách nào để tôi nhận được giá trị 'Đây là tên của tôi' của khoảng trên?

<div id='item1'>
<span>This is my name</span>
</div>

Câu trả lời:


299

Tôi nghĩ rằng đây phải là một ví dụ đơn giản:

$('#item1 span').text();

hoặc là

$('#item1 span').html();

1
Tôi tìm các hàm jQuery đó ở đâu?
Felipe Barreiros

24
Tôi nghĩ điều quan trọng khi hiển thị hai hàm này là chúng ta không nhầm lẫn các lập trình viên mới bằng cách đề xuất rằng chúng làm điều tương tự, khi chúng không hoạt động (mặc dù trong ví dụ này nó sẽ xuất hiện như vậy). Điều quan trọng cần lưu ý là .text()html sẽ mã hóa bất kỳ ký tự nào nó tìm thấy, trong khi .html()sẽ không mã hóa bất kỳ ký tự nào.
VoidKing

Điều này có thể được thực hiện với nhiều nhịp với cùng một lớp không?
Matthew Woodard

Tôi tình cờ phát hiện ra điều này khi cố gắng tìm ra tspan để làm việc với IE. Tôi đã thấy rằng bạn cần sử dụng .text () với tspan chứ không phải .html (). Không chắc chắn tại sao và nó có thể không phải là trường hợp cho tất cả mọi người nhưng nó đã sửa nó trong IE khi tôi sử dụng .text ().
Kalel Wade

@MatthewWoodard $('.class').each(function() { $(this).html() });; bởi vì $('.class').html()sẽ trả về giá trị .html () cho phần tử đầu tiên
tomsihap


7

Giả sử bạn dự định đọc id = "item1", bạn cần

$('#item1 span').text()


5

Vì bạn không cung cấp một thuộc tính cho giá trị 'mục', tôi giả sử một lớp đang được sử dụng:

<div class='item1'>
  <span>This is my name</span>
</div>

alert($(".item span").text());

Hãy chắc chắn rằng bạn đợi DOM tải để sử dụng mã của mình, trong jQuery bạn sử dụng ready()hàm cho điều đó:

<html>
 <head>
  <title>jQuery test</title>
  <!-- script that inserts jquery goes here -->
  <script type='text/javascript'>
    $(document).ready(function() { alert($(".item span").text()); });
  </script>
</head>
<body>
 <div class='item1'>
   <span>This is my name</span>
 </div>
</body>


1
bạn đã thay đổi câu hỏi! Câu trả lời của bạn phù hợp với câu hỏi của bạn, anh ấy đã chỉ định id không phải là tên lớp
Lewis

tốt, nếu bạn thấy bình luận đầu tiên dưới tên của anh ấy, bạn sẽ nhận thấy rằng anh ấy đã không viết một thuộc tính nào cả, đó là <div 'item1'>, tôi đã đoán sai rõ ràng.
Francisco Aquino

2

Trong javascript bạn sẽ không sử dụng document.getElementById('item1').innertext?





0

RẤT QUAN TRỌNG Thông tin bổ sung về sự khác biệt giữa .text () và .html ():

Nếu bộ chọn của bạn chọn nhiều mục, ví dụ: bạn có hai nhịp như vậy <span class="foo">bar1</span> <span class="foo">bar2</span> ,

sau đó

$('.foo').text();nối hai văn bản và cung cấp cho bạn rằng; trong khi

$('.foo').html(); chỉ cung cấp cho bạn một trong số đó.


0

Bạn có thể sử dụng id trong span trực tiếp trong html của bạn.

<span id="span_id">Client</span>

Sau đó, mã jQuery của bạn sẽ là

$("#span_id").text();

Một số người đã giúp tôi kiểm tra lỗi và thấy rằng anh ta đã sử dụng val () thay vì text (), không thể sử dụng hàm val () trong span. Vì thế

$("#span_id").val();

sẽ trả về null.


-2
<script>
    $(document).ready(function () {

            $.each($(".classBalence").find("span"), function () {
            if ($(this).text() >1) {
                $(this).css("color", "green")

            }
            if ($(this).text() < 1) {
                $(this).css("color", "red")
                $(this).css("font-weight", "bold")
            }
        });

    });
    </script>
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.