Tôi có bảng này tải từ cơ sở dữ liệu, vì vậy tất cả các phần tử từ each row
có cùng thuộc tính.Làm cách nào để thao tác các thành phần HTML bằng jquery?
<table class="table table-responsive">
<tr>
<th>Product name</th>
<th>Quantity</th>
<th>Price per unit</th>
<th>Total</th>
<th>Action</th>
</tr>
<tr>
<td class="product-name">Product one name</td>
<td class="product-quantity">
<!-- plus button should increase quantity and update total based on unit_price*quantity -->
<button class="btn"> +</button>
<input type="text" value="2"/>
<button class="btn"> -</button>
</td>
<td class="unit-price">50</td>
<td class="total-price">100</td>
<td>
<!-- this should delete entire row -->
<button class="product-delete">Delete</button>
</td>
</tr>
...
</table>
<!-- on each quantity change this needs to update -->
<div class="grand-total"> 5000 </div>
tôi đã cố gắng để làm cho jQuery
nhưng không thể làm việc nó ra vì mỗi hàng có thuộc tính giống tôi không thể chọn hàng cụ thể và cập nhật nội dung của nó để làm công việc này.
Tôi đã tìm kiếm rất nhiều, nhưng tất cả những gì tôi tìm thấy là thao tác HTML dựa trên id và class selector mà tôi không thể sử dụng được vì các phần tử từ mỗi hàng có cùng một lớp và tôi không thể cung cấp id duy nhất cho mọi phần tử. từ cơ sở dữ liệu (PHP).
Tôi thực sự đánh giá cao nếu có ai có thể cho tôi biết cách thực hiện điều này trong jQuery
. Và vui lòng không cho tôi liên kết đến thao tác tĩnh HTML
bằng cách sử dụng jQuery
Tôi muốn có giải pháp cho động HTML elements
.
loại hoạt động bạn phải thực hiện trên bàn – Rahul
@Aniket Deshmukh Những gì bạn cần là một số ** độc đáo id ** hoặc ** dữ liệu độc đáo ** cho mỗi hàng/sản phẩm trong bảng cơ sở dữ liệu của bạn nếu bạn không có nó thì không thể ** 'delete/update' ** hàng cụ thể trong cơ sở dữ liệu. – divy3993
Tôi có ID duy nhất cho mỗi sản phẩm nhưng tôi có thể cung cấp cho tên sản phẩm
Trả lời
Cập nhật: Dưới đây là ví dụ làm việc: Fiddle example và mã là:
Nguồn
2016-02-15 12:03:21
Cập nhật, với nhiều hàng –
Cảm ơn tôi nghĩ câu trả lời của bạn là tối ưu hơn tôi đã làm việc ra –
tại sao không sử dụng lựa chọn jQuery dựa trên lớp học? bạn có ý nghĩa để thay đổi attribtues của chỉ một số yếu tố, và không phải toàn bộ lớp học?
Nếu bạn quyết định bạn không thể sử dụng lớp dựa lựa chọn jQuery, bạn có thể nghỉ mát để thay đổi các lớp học với jQuery, mà là rất dễ dàng:
Nguồn
2016-02-15 11:31:53
Câu trả lời của bạn không cố trả lời câu hỏi. Nó có thể có thể là một chỉnh sửa, bình luận, một câu hỏi khác, hoặc xóa hoàn toàn. – divy3993
Đó là vấn đề nếu tôi sử dụng lựa chọn lớp mỗi hàng sẽ được chọn và tôi muốn chỉ chọn một hàng nơi hoạt động được thực hiện với các nút dấu cộng và xóa. –
Hi tôi đã thêm vào làm việc code demo giúp bạn rất nhiều.
tôi đã thêm sự kiện nhấp chuột vào nút và trong sự kiện, với nút tôi có tìm kiếm phần tử cha và phần tử cha tôi có thể tìm mọi thứ bên trong tr đó bằng phương pháp jquery.
xem mã và hiểu nó bướng bỉnh nó sẽ giúp bạn
Nguồn
2016-02-15 11:45:04 Rahul
Tuyệt vời !! hoạt động hoàn hảo, tôi đã tìm kiếm điều này trong một tuần. Chỉ còn một câu hỏi nữa là tôi có thể nhận được văn bản trong
bằng cách sử dụng jqeury sử dụng classname của div hoặc provoide id cho div đó để nó phải là uniuqe. Sử dụng bộ chọn lớp. $ (". grand-total"). empty(). chắp thêm ("tổng số tiền từ việc tính toán"); hoặc bu sing id $ ("# idofgrand-total"). Empty(). Chắp thêm ("tổng số tiền từ việc tính toán"); – Rahul
Có, đã làm nó đã –
Xin chào, tôi đã thêm mã demo giúp bạn. và đối với mỗi td mới, bạn cần nhập loại chứa id sản phẩm và tên của nó và nó sẽ bị ẩn. Bằng cách lấy id và tên sản phẩm, bạn có thể cập nhật và xóa cùng một sản phẩm.
Lưu ý: nếu bạn đang truy cập cơ sở dữ liệu biểu mẫu dữ liệu, bạn sẽ nhận được id sản phẩm và tên của nó và bạn có thể chuyển các giá trị này vào thẻ đầu vào như đề cập ở trên tương ứng.
Nguồn
2016-02-15 13:27:56
Bạn đã sử dụng ID làm công cụ chọn, nó sẽ không chọn mọi nút trong mỗi hàng có cùng id? Tôi có nghĩa là mỗi hàng sẽ có một nút với id = 'Addbutton'. Tôi nghĩ id nên là duy nhất trong html? –
Có trong mọi tr mới, bạn sẽ có kiểu đầu vào bị ẩn bằng cách giữ giá trị ẩn hoặc id sản phẩm bạn cần triển khai. và bạn cũng có thể sử dụng mã này trên nút thêm và xóa và nó chỉ trỏ đến tr cụ thể đó. var TextBox = parseInt ($ (parentTR) .find (". TextBox"). Val()); $ (parentTR) .find (". TextBox"). Val (TextBox + 1); –
Dưới đây là giải pháp cuối cùng tôi đã làm việc ra từ câu trả lời của Rahul.
Nguồn
2016-02-15 17:54:04
Các vấn đề liên quan