簡體   English   中英

通過jQuery更改動態創建元素的CSS

[英]Change CSS of dynamically created elements via jQuery

我正在嘗試更改動態創建的div .cardh3的顏色,但是,當我重新加載頁面時,它將其值設置為默認值。

這是我正在試圖改變顏色,其中color參數是所需的顏色,以適用於h3

點擊按鈕,我正在創建卡片:

function createCard(id, title, ...) {
    // Creates a main card div
    var $cardDiv = $('<div>', {
        class: 'col-md-12 card',
        "card-id": id
    });

    // h3 tag with title of note
    var $title = $('<h3>', {
        "data-toggle": 'modal',
        "data-target": '#update',
        click: function() {
            updateModal(id, title, note);
        }
    }).text(title);

    // Append to card
    $cardDiv.append($title);
}

在此之后,我正在調用cardScheme方法:

cardScheme('#29ABDA');

function cardScheme(color) {
    $('.card h3').css('color', color);
}

我意識到JavaScript / jQuery無法找到.card類,因為這些卡是動態創建的。

var cards = document.getElementsByClassName('card');
for (var i in cards) {
    console.log('cards', cards[i]);
}
// returned {cards, 0}

如何更改h3的顏色?

你可以撥打cardScheme('#29ABDA'); createCard方法中,如下所示。

注意 :我無法看到你將動態div $cardDiv附加到文檔的位置,我的意思是另一個現有的divbody

工作snippet

 function cardScheme(color) { $('.card h3').css('color', color); } function createCard(id, title, note) { // Creates a main card div var $cardDiv = $('<div>', { class: 'col-md-12 card', "card-id": id }); // h3 tag with title of note var $title = $('<h3>', { "data-toggle": 'modal', "data-target": '#update', click: function() { updateModal(id, title, note); } }).text(title); // Append to card $cardDiv.append($title); $('#container').append($cardDiv); cardScheme('#29ABDA'); } setTimeout(function(){ createCard('test', 'testTitle', 'test note'); }, 2000); // after 2 seconds 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="container"></div> 

一旦加載DOM並准備使用,就應該添加JS代碼。 像這樣 -

$(document).ready(function(){
    $('.card h3').css('color', color);
});
function createCard(id, title, ...) {
      ...
     // append this below the initial code you've
    //.ready make sures that function within is executed only when the specified HTML element is created in DOM
    $($title).ready(function(){
         //Then call your function
        cardScheme('#29ABDA');
    });
}

暫無
暫無

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

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