Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery addClass()在bootstraps中显示.bs.tab事件_Javascript_Jquery_Css_Twitter Bootstrap_Svg - Fatal编程技术网

Javascript jQuery addClass()在bootstraps中显示.bs.tab事件

Javascript jQuery addClass()在bootstraps中显示.bs.tab事件,javascript,jquery,css,twitter-bootstrap,svg,Javascript,Jquery,Css,Twitter Bootstrap,Svg,我在Bootstrap的.tab窗格中有两个带有svg图形的对象。 在这些SVG中,我希望对元素进行样式化,从而使用jquery添加css类。在调试时,我可以看到这些类仍然正确地添加到$elem.classList中,但没有添加到svg中的elements类属性中 这是添加类的代码。我唯一需要改变的是前5行的位置,在引导面板中工作 $("a[data-toggle='tab']").on('shown.bs.tab', function (e) { e.preventDefault();

我在Bootstrap的.tab窗格中有两个带有svg图形的对象。 在这些SVG中,我希望对元素进行样式化,从而使用jquery添加css类。在调试时,我可以看到这些类仍然正确地添加到$elem.classList中,但没有添加到svg中的elements类属性中

这是添加类的代码。我唯一需要改变的是前5行的位置,在引导面板中工作

$("a[data-toggle='tab']").on('shown.bs.tab', function (e) {
    e.preventDefault();
    e.stopPropagation();
    var whichObj = e.target.href.slice(-5);
    var doc = $(".raumplan",whichObj)[0];
    var svg = doc.contentDocument.documentElement;

    var refs = new XMLHttpRequest();
    refs.open("GET", "/RaumRefs", true);
    refs.onreadystatechange = function (e) {
        if (refs.readyState === 4 && refs.status === 200) {
            raumReferat = JSON.parse(refs.responseText);
            for (var i = 0; i < raumReferat.length; i++) {
                var id = raumReferat[i].raum.replace(/\./g,'\\.');
                if (id != "") {
                    var elem = $("#" + id, svg);

                    elem.addClass("ref" + raumReferat[i].referat+" buero");
                    if (raumReferat[i].besetzt == true) {
                        elem.addClass("besetzt");
                    }
                }
            }
        }
    }
    refs.onerror = function (e) {
        console.error(refs.statusText);
    }
    refs.send(null);
}
$([a[data toggle='tab'])。on('show.bs.tab',function(e){
e、 预防默认值();
e、 停止传播();
var whichObj=e.target.href.slice(-5);
var doc=$(“.raumplan”,whichObj)[0];
var svg=doc.contentDocument.documentElement;
var refs=新的XMLHttpRequest();
参考打开(“GET”、“/RaumRefs”、true);
refs.onreadystatechange=函数(e){
if(refs.readyState==4&&refs.status==200){
raumReferat=JSON.parse(refs.responseText);
对于(变量i=0;i
它正确地从正确的svg中按id选择元素并添加正确的类。但是,为什么它对没有面板的同类没有影响呢

其他信息:
这只发生在chrome浏览器中,ie和firefox都正常工作。

因为id是唯一的,所以你不必在选择器中使用上下文。@Jai:我以前也这么认为,但我需要使用上下文,因为否则js在嵌入的svg中找不到id,因为它是自己的文档