簡體   English   中英

可以在JavaScript中將變量作為元素ID傳遞嗎

[英]Can a variable be passed as an element id in javascript

我正在嘗試使用jQuery在Django中運行一些AJAX。 問題是我要更改的元素的ID並不是一成不變的,它是Django模板變量,因此表中的每個元素都不同,但是我想使用AJAX來更改該元素。 我正在通過simplejson將字典從Django視圖傳遞到JavaScript,相關的對象是ID和模型(不是真實的變量名,只是想讓它變得很明顯我正在嘗試做)。 一些偽代碼(第三行,就像python一樣寫,因為我不知道如何在JavaScript中執行此操作):

var quantity_update = function(msg, elem) {
    var response_obj = eval('(' + msg + ')');
    var newtotal = document.getElementById("%s, %s"); % (response_obj.id, response_obj.model)
    subtotal.innerHTML = "<td>"+response_obj.subtotal+"</td>"; 

這樣的事情有可能嗎?

如果您的元素ID並非一成不變,則可能需要使用其他方式來標識該元素。 許多JS框架(例如jQuery)都支持通過CSS Selector進行標識。 例如,您可以通過標簽和類的組合來標識要更改的元素。

有關可用選擇器的文檔,請閱讀jQuery選擇器文檔。

Javascript沒有花哨的字符串格式(%s),但是您可以使用純字符串連接,就像在Python中一樣:

var id = response_obj.id + ', ' + resonse_obj.model

您無需擔心字符串是動態生成的。 畢竟它仍然是一個字符串,並且getElementById以相同的方式接受它。


您可能不應該自己執行eval()來解析JSON。 我很確定當您執行AJAX請求時,您可以讓JQuery為您執行此操作。

您可以完全將jquery css選擇器作為變量傳遞。 簡單的例子:

var elementId = $('td').eq(0).attr('id'),
    myElement = $('#'+elementId); 

在此示例中,我們獲取文檔中第一個TD的ID,找到其ID,然后使用該ID來獲取“ myElement”

您可能會發現查看jQuery文檔(api.jquery.com)的“選擇器”部分以查看所有查找元素的選項很有幫助。 在我的示例中,我還使用了jquery.eq()方法,該方法將選擇器列表(在本例中為所有TD)篩選為一個特定的選擇器。

暫無
暫無

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

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