javascript - CKEditor - 对于每个具有类名的属性执行一些操作

标签 javascript jquery ckeditor jwplayer

我正在尝试获取具有类名的每个元素的属性值。

这是我的代码:

var textareaId;

$(document).ready(function () {
    textareaId = $('#tiny_mce_block').find('textarea').attr('id'); // 
    ckeditor_init();
});

function ckeditor_init() {
    CKEDITOR.replace(textareaId, {
        allowedContent: true,
          on: {
            instanceReady: function (evt) {
                var editor = this;
                var data = editor.getData();
                var body = $(editor.document.getBody());

                jwplayer("video_block_sous_titres").onTime(function (event) {
                    $.each(**SELECT CLASS .ST**, function () { // HOW SELECT ELEMENTS WHERE THE CLASS IS 'st'
                        var d = SELECT DATA-TIME-START ; // HOW GET CONTENT OF ATTRIBUTE NAMED 'data-time-start'
                        var f = SELECT DATA-TIME-END; // HOW GET CONTENT OF ATTRIBUTE NAMED 'data-time-end'
                        if (d <= event.position && event.position <= f) {
                            if ($(this).attr("class") !== "active") {
                                $(".st").removeClass("active"); // HOW REMOVE THE CLASS 'active'
                                $(this).addClass("active"); // HOW ADD THE CLASS 'active'
                            }
                        } else {
                            $(this).removeClass("active"); // HOW REMOVE THE CLASS 'active'
                        }
                    });
                });
            }
        }
    });
}

在我的文本区域中我有这个:

<span class="st" id="1" data-time-start="0.29" data-time-end="1.259" data-time-moy="0.1938">mardi </span>
<span class="st" id="2" data-time-start="2.048" data-time-end="5.406" data-time-moy="0.10832258064516">qualité sécurité efficacité </span>

第一个问题: 在调用 JWPlayer 的循环中,如何为每个具有类 .st 的元素选择名为 data-time-startdata 的属性值-时间结束

第二个问题: 之后,如何向此 .st 添加或删除类 active (使用哪种方法?)?

我试图获取这样的属性内容,但没有办法:

var st = el.find('#20');
console.log(st.getAttribute('data-time-start'));

我的 fiddle :http://jsfiddle.net/B4yGJ/415/

感谢您的帮助!

最佳答案

我用这个解决了我的问题:

function jwplayer_underligne_st() {
        jwplayer("video_block_sous_titres").onTime(function (evt) {
            //var st = $(CKEDITOR.instances[textareaId].window.getFrame().$).contents().find('.word');
            var st = $(CKEDITOR.instances[textareaId].window.getFrame().$).contents().find('.st');
            $.each(st, function () {
                $this = $(this);
                var d = $this.attr("data-time-start");
                var f = $this.attr("data-time-end");
                if (d <= evt.position && evt.position <= f) {
                    if ($this.attr("class") !== "active") {
                        $this.addClass("active");
                    }
                } else {
                    $this.removeClass("active");
                }
            });
        });
    }

关于javascript - CKEditor - 对于每个具有类名的属性执行一些操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29259879/

相关文章:

Javascript 开关范围

grails - 在Grails中配置CK编辑器插件

android - Richtext/CK 编辑器在 Android 上不工作

java - Android 启动画面 - 来自 SD 卡的图像?

javascript - :remote => true creating unknown format?

html - CKEditor:插入图像时的自定义HTML

javascript - AngularJS如何获取 bool 值

javascript - 根据复选框 Angular 动态隐藏列

javascript - 我可以在 Android 设备上本地使用 node.js 吗?

javascript - 几秒钟后自动滚动到 div