Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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将break-into头添加到';太长了_Javascript_Jquery_String - Fatal编程技术网

Javascript 使用jQuery将break-into头添加到';太长了

Javascript 使用jQuery将break-into头添加到';太长了,javascript,jquery,string,Javascript,Jquery,String,使用jquery,我想遍历一个父div中的所有h3标记。可以有1个或多个。我必须检查每个标题,以确保它不超过35个字符和空格。如果是,我必须在第35个字符后加一个(也是第70、105等) 在我们对制作标题的脚本进行永久性更改之前,这是一个快速而肮脏的修复。如果您有任何帮助,我们将不胜感激。请改用CSS,并使用35ex表示35个字符 改用CSS,35个字符使用35ex 更好的解决方案是使用纯Javascript: function fixHeader(el) { var elements =

使用jquery,我想遍历一个父div中的所有h3标记。可以有1个或多个。我必须检查每个标题,以确保它不超过35个字符和空格。如果是,我必须在第35个字符后加一个

(也是第70、105等)


在我们对制作标题的脚本进行永久性更改之前,这是一个快速而肮脏的修复。如果您有任何帮助,我们将不胜感激。

请改用CSS,并使用35ex表示35个字符


改用CSS,35个字符使用35ex


更好的解决方案是使用纯Javascript:

function fixHeader(el) {
var elements = el.getElementsBYTagName("h3");

    for (x in elements) {
        fixHtml(elements[x]);
    }
}

function fixHtml(el) {
var html = "",
    j = 0;

    for (var i = 0; i < el.innerHTML.length; i++) {
        html += el.innerHTML[i];

        if (j > 35) {
            html += "<br />";
            j = 0;
        }

        j++;
    }
}
功能固定头(el){
var elements=el.getElementsBYTagName(“h3”);
对于(元素中的x){
fixHtml(元素[x]);
}
}
函数fixHtml(el){
var html=“”,
j=0;
for(var i=0;i35){
html+=“
”; j=0; } j++; } }
可以通过调用fixHeader(yourElement)来使用此函数

更好的解决方案当然是CSS。。您可以只创建一个宽度为的内部元素

<div>
    <div style="width:100px;">My superduper long text which is absolutely to long and definitly needs breaks.</div>
</div>

我的superduper长文本绝对太长了,肯定需要中断。
您可以通过增加宽度来调整字符数

如果您真的喜欢使用jQuery…:

$(el).find("h3").each(function() {
    var html = $(this).html(),
    j = 0,
    new_html = "";

    for (var i = 0; i < html.length; i++) {
        new_html += html[i];

        if (j > 35) {
            new_html += html[i];
            j = 0;
        }

        j++;
    }

    $(this).html(new_html);
});
$(el).find(“h3”).each(函数(){
var html=$(this.html(),
j=0,
new_html=“”;
for(var i=0;i35){
new_html+=html[i];
j=0;
}
j++;
}
$(this).html(新的html);
});

更好的解决方案是使用纯Javascript:

function fixHeader(el) {
var elements = el.getElementsBYTagName("h3");

    for (x in elements) {
        fixHtml(elements[x]);
    }
}

function fixHtml(el) {
var html = "",
    j = 0;

    for (var i = 0; i < el.innerHTML.length; i++) {
        html += el.innerHTML[i];

        if (j > 35) {
            html += "<br />";
            j = 0;
        }

        j++;
    }
}
功能固定头(el){
var elements=el.getElementsBYTagName(“h3”);
对于(元素中的x){
fixHtml(元素[x]);
}
}
函数fixHtml(el){
var html=“”,
j=0;
for(var i=0;i35){
html+=“
”; j=0; } j++; } }
可以通过调用fixHeader(yourElement)来使用此函数

更好的解决方案当然是CSS。。您可以只创建一个宽度为的内部元素

<div>
    <div style="width:100px;">My superduper long text which is absolutely to long and definitly needs breaks.</div>
</div>

我的superduper长文本绝对太长了,肯定需要中断。
您可以通过增加宽度来调整字符数

如果您真的喜欢使用jQuery…:

$(el).find("h3").each(function() {
    var html = $(this).html(),
    j = 0,
    new_html = "";

    for (var i = 0; i < html.length; i++) {
        new_html += html[i];

        if (j > 35) {
            new_html += html[i];
            j = 0;
        }

        j++;
    }

    $(this).html(new_html);
});
$(el).find(“h3”).each(函数(){
var html=$(this.html(),
j=0,
new_html=“”;
for(var i=0;i35){
new_html+=html[i];
j=0;
}
j++;
}
$(this).html(新的html);
});

方法1:(无子字符串)

您可以在每个标题内换行一个div,并使用css强制换行div width

演示:

JS:

$('h3').wrapInner('<div class="limitHeader" />');
.limitHeader {
    width: 360px; /* Update as your font-style*/
    word-wrap: break-word;
}
方法2:(使用子字符串)

方法1可能不可靠,因为每个字符的宽度不同。所以,如果你真的想让它精确到35个字符,那么试试下面这样一个简单的迭代

演示:

$('h3').html(函数(idx,v){
如果(v.长度>35){
var结果=“”;
对于(变量i=0;i<(v.length/35);i++){
结果+=v.substr(35*i,35)+'
'; } 返回结果; } 返回v; });
方法1:(无子字符串)

您可以在每个标题内换行一个div,并使用css强制换行div width

演示:

JS:

$('h3').wrapInner('<div class="limitHeader" />');
.limitHeader {
    width: 360px; /* Update as your font-style*/
    word-wrap: break-word;
}
方法2:(使用子字符串)

方法1可能不可靠,因为每个字符的宽度不同。所以,如果你真的想让它精确到35个字符,那么试试下面这样一个简单的迭代

演示:

$('h3').html(函数(idx,v){
如果(v.长度>35){
var结果=“”;
对于(变量i=0;i<(v.length/35);i++){
结果+=v.substr(35*i,35)+'
'; } 返回结果; } 返回v; });
可以试试
$。每个
头的stru len
吗?可以试试
$。每个
头的stru len
吗?
“Supercalif ragilist”。长度
为19。另外,你能检查一下“ragilist”后面的空格看起来不像是你数过的吗这是一个有趣的方法,因为我的第一个想法是做
substr
+1ah。。这是空白。。我的错。
“超级救生衣”。长度是19。另外,你能检查一下“ragilist”后面的空格看起来不像是你数过的吗这是一个有趣的方法,因为我的第一个想法是做
substr
+1ah。。这是空白。。我的错。