Câu trả lời:
var value_input = $("input[name*='xxxx']").val();
Mặc dù không thể phủ nhận rằng jQuery là một công cụ mạnh mẽ, nhưng việc sử dụng nó cho một hoạt động tầm thường như "lấy giá trị thuộc tính của một phần tử" là một ý tưởng thực sự tồi tệ.
Đánh giá theo câu trả lời được chấp nhận hiện tại, tôi sẽ giả định rằng bạn có thể thêm thuộc tính ID vào thành phần của mình và sử dụng thuộc tính đó để chọn nó.
Với ý nghĩ đó, đây là hai đoạn mã. Đầu tiên, mã được cung cấp cho bạn trong Câu trả lời được chấp nhận:
$("#ID").attr("name");
Và thứ hai, phiên bản Vanilla JS của nó:
document.getElementById('ID').getAttribute("name");
Kết quả của tôi:
Bạn có thể tự kiểm tra tại đây . Phiên bản "JavaScript đơn giản" nhanh hơn 35 lần so với phiên bản jQuery.
Bây giờ, đó chỉ là một thao tác, theo thời gian, bạn sẽ có ngày càng nhiều thứ đang diễn ra trong mã của mình. Có lẽ đối với một cái gì đó đặc biệt tiên tiến, giải pháp "JavaScript thuần" tối ưu sẽ mất một giây để chạy. Phiên bản jQuery có thể mất 30 giây đến cả phút! Nó thật khổng lồ! Mọi người sẽ không ngồi xung quanh vì điều đó. Ngay cả trình duyệt cũng sẽ chán và cung cấp cho bạn tùy chọn để giết trang web vì mất quá nhiều thời gian!
Như tôi đã nói, jQuery là một công cụ mạnh mẽ, nhưng nó không nên được coi là câu trả lời cho mọi thứ .
Bạn cần phải viết một bộ chọn trong đó chọn đúng <input>
trước. Lý tưởng nhất là bạn sử dụng ID của phần tử $('#element_id')
, không biết ID của phần chứa của nó $('#container_id input')
hoặc lớp của phần tử $('input.class_name')
.
Phần tử của bạn không có cái nào trong số này và không có ngữ cảnh, vì vậy thật khó để cho bạn biết cách chọn nó.
Khi bạn đã tìm ra bộ chọn thích hợp, bạn sẽ sử dụng phương thức attr để truy cập các thuộc tính của phần tử. Để có được tên, bạn sẽ sử dụng $(selector).attr('name')
cái sẽ trả về (trong ví dụ của bạn) 'xxxxx'
.
Một cách tốt hơn có thể là sử dụng 'cái này', nó lấy bất cứ tên nào của 'id' và sử dụng nó. Miễn là bạn thêm tên lớp gọi là 'mytarget'.
Bất cứ khi nào bất kỳ trường nào có mục tiêu thay đổi thì nó sẽ hiển thị một hộp cảnh báo với tên của trường đó. Chỉ cần cắt và qua toàn bộ kịch bản cho nó hoạt động!
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
$('.mytarget').change(function() {
var name1 = $(this).attr("name");
alert(name1);
});
});
</script>
Name: <input type="text" name="myname" id="myname" class="mytarget"><br />
Age: <input type="text" name="myage" id="myage" class="mytarget"><br />
sử dụng giá trị nhận tên đầu vào
$('input[value="1"]').attr('name');
sử dụng id nhận tên đầu vào
$('input[class="id"]').attr('name');
$('#id').attr('name');
sử dụng lớp nhận tên đầu vào
$('input[value="classname"]').attr('name');
$('.classname').attr('name'); //if classname have unique value
Nếu bạn đang xử lý một yếu tố duy nhất, tốt nhất là bạn nên sử dụng id
bộ chọn như đã nêu trong câu trả lời GenericTypeTea và lấy tên như thế nào $("#id").attr("name");
.
Nhưng nếu bạn muốn, như tôi đã làm khi tôi tìm thấy câu hỏi này, một danh sách với tất cả các tên đầu vào của một lớp cụ thể (trong ví dụ của tôi là một danh sách với tên của tất cả các hộp kiểm không được kiểm tra với .selectable-checkbox
lớp), bạn có thể làm một cái gì đó như:
var listOfUnchecked = $('.selectable-checkbox:unchecked').toArray().map(x=>x.name);
hoặc là
var listOfUnchecked = [];
$('.selectable-checkbox:unchecked').each(function () {
listOfUnchecked.push($(this).attr('name'));
});
Truyền lớp cho thẻ đầu vào và truy cập giá trị tên bằng cách sử dụng lớp.
<input class="test-class" name='xxxxx' value=1>
<script>
$('.test-class').attr('name');
</script>
Hoặc bạn cũng có thể truy cập giá trị bằng id.
<input id="test-id" name='xxxxx' value=1>
<script>
$('#test-id').attr('name');
</script>
Đối với dòng dưới đây, Ban đầu phải đối mặt với vấn đề với việc đưa ra một mã duy nhất mà 'currentnetRowAppName'value không chiếm không gian với chuỗi. Vì vậy, sau khi đưa ra mã duy nhất '"+row.applicationName+"'
, nó cũng chiếm không gian.
Thí dụ:
<button class='btn btn-primary btn-xs appDelete' type='button' currnetRowAppName='"+row.applicationName+"' id="+row.id+ >
var viewAppNAME = $(this).attr("currnetRowAppName");
alert(viewAppNAME)
Điều này đang làm việc tốt.