簡體   English   中英

如何通過jquery訪問視圖中動態添加的元素

[英]How can I access dynamically added elements in views via jquery

我想訪問和修改加載角度視圖的元素。 我似乎無法做到,但元素在控制台輸出就好了。

布局

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <title></title>
</head>
<body data-ng-app="myapp">
    <div class="wrap">
        <div class="header"></div>
        <div class="content">
            <div data-ng-view=""></div>
        </div>
    </div>
    <script type="text/javascript" src="/content/plugins/jquery/jquery-1.10.1.min.js"></script>
    <script type="text/javascript" src="/content/plugins/bootstrap/bootstrap.min.js"></script>
    <script type="text/javascript" src="/content/plugins/pxgradient/pxgradient-1.0.2.jquery.js"></script>
    <script type="text/javascript" src="/content/plugins/angularjs/angular.js"></script>
    <script type="text/javascript" src="/content/plugins/angularjs/angular-route.js"></script>
    <script type="text/javascript" src="/content/plugins/angularjs/angular-animate.js"></script>
    <script type="text/javascript" src="/app/app.js"></script>
    <script type="text/javascript" src="/content/js/main.js"></script>
</body>
</html>

視圖

<div class="home">
    <h1 class="gradient">Transformation is comming</h1>
</div>

使用Javascript

$(function () {
    var element = $('.gradient');

    console.log(element); // this works

    element.css('color', 'red'); // this does not
});

您的元素可能尚未“准備好”(尚未在DOM中)。

你需要在jquery document.ready函數中訪問它如果你使用Angular,在引導過程完成后,使用Angular angular.element(document).ready

示例代碼: http//pairp.com/6144/1

好的,我想我有一個解決方案,試試這個:

app.run(function ($rootScope) {
    $rootScope.$on('$viewContentLoaded', function () {
        $('.gradient').css('color', 'red');
    });
});

也許你的元素有一個你應該覆蓋的css規則。 嘗試這個:

$('.gradient').removeAttr('style').css('color','red');

你需要編寫CSS作為對象:

   element.css({'color':'red'});

暫無
暫無

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

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