Javascript 使用jQuery将break-into头添加到';太长了
使用jquery,我想遍历一个父div中的所有h3标记。可以有1个或多个。我必须检查每个标题,以确保它不超过35个字符和空格。如果是,我必须在第35个字符后加一个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 =
(也是第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。。这是空白。。我的错。