jquery - css在jquery中设置

标签 jquery html css

我有以下代码:

function MyFitText2(width, height, span) {
    var fontSize = 20;
    $(span).css('font-size', fontSize);
    do {
        fontSize = fontSize - 1;
        textHeight = $(span).height();
        textWidth = $(span).width();
        $(span).css('font-size', fontSize);
    } while ((textHeight > height || textWidth > width) && fontSize > 1);
}

并使用:

var pinkboxspan = "<span style=\"position:absolute; left:" + $thisPinkBox["PinkBoxLeft"] + "px; top:" + $thisPinkBox["PinkBoxBoxTop"] + "px; " +
                        "text-align:left; font-weight: bold; color: red; background: linear-gradient(rgba(255, 215, 15, 0.5),rgba(255, 215, 15, 0.5));" +
                        "line-height:1.1; " +
                        "\">" + text + "</span>&nbsp;";

MyFitText2($thisPinkBox["PinkBoxWidth"], $thisPinkBox["PinkBoxHeight"], pinkboxspan);
$(pinkboxspan).css('width', $thisPinkBox["PinkBoxWidth"] + 'px');
$(pinkboxspan).css('height', $thisPinkBox["PinkBoxHeight"] + 'px');

但结果是:

<span style="position:absolute; left:870px; top:413px; text-align:left; font-weight: bold; color: red; background: linear-gradient(rgba(255, 215, 15, 0.5),rgba(255, 215, 15, 0.5));line-height:1.1; ">Sergey's Office
<br>Y Amphitheatre Parkway
<br>Mountain View, CA XXXXX
<br>United States
<br></span>

然后我通过以下方式将它添加到 DOM 中:

var imageElement = $("<div style='text-align:left;'><div style='position: relative; display: inline-block;'><img style='position: relative; vertical-align: central;' src='" + $('#previewImage').attr('src') + "' /></div></div>");

var divElement = imageElement.find('div');

var divContent = '';
     // code above in $.each
     divContent = divContent + pinkboxspan;

divElement.append(divContent);

$('#divOverlay').html(divElement);

因此,未设置参数宽度/高度。为什么以及如何解决?

最佳答案

您正在创建非持久化的 jQuery 对象并操纵其 CSS 规则,因此修改后的 CSS 属性不会反射(reflect)出来。

创建一个 jQuery 对象并在代码中使用它。

var span = $(pinkboxspan);
span = MyFitText2($thisPinkBox["PinkBoxWidth"], $thisPinkBox["PinkBoxHeight"], span);
span.css('width', $thisPinkBox["PinkBoxWidth"] + 'px');

//if you need string
pinkboxspan = span.prop('outerHTML');

function MyFitText2(width, height, span) {
    span.css('font-size', 20);
    //Manipulate Span properties
    return span;
}

关于jquery - css在jquery中设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44327706/

相关文章:

javascript - 遍历 JSON 对象并检查特定对象是否存在

c# - 如何在ASP.net Core中添加js和css文件?

javascript - 尝试避免在 Domino XPage 中多次调用 jQuery

css - 为什么在这种情况下需要 z-index?

html - 如何对齐伪元素:before :after and span element

javascript - 将字符串(是一个函数)转换回 Javascript 中的函数

javascript - 如何使用 JavaScript 来计算整个 HTML 网页中某个单词的出现次数,而不是仅在数组中出现的次数?

javascript - 用户输入字段后,如何使用 getElementById 获取字段?

javascript - jQuery 警报不起作用

html - CSS 按钮类断开链接