jquery - 打破/防止每个循环 [英] Jquery - Break/Prevent each loop

查看:91
本文介绍了jquery - 打破/防止每个循环的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的代码应该在内容之间放置一个横幅,但它是循环横幅。我需要它仅显示一个横幅。我已经尝试过使用 return false; ,就像这个例子,但它不起作用:

 ($ this.nodeType!= 3){
newHtml + = this()函数(){

$(。newsitem_text)。 .outerHTML;
count + = $(this).text()。trim()。split(/ \ s + /)。length;
} else {
var wordList = $( this).text()。trim().span(/ \s + /);

$ .each(wordList,function(index,word){
count ++;
check();
newHtml + =''+ word;
})
}

return false;
});


解决方案

b
$ b

演示



  jQuery(function($){var img ='< img src =http://blog.leadlovers.com.br/wp-content/ uploads / sites / 23/2014/03 / marca21-160x160.png/>'//对于具有class $(。newsitem_text)。html(function(i,h){// h是oldHTML当前元素// h.split(/ \s + /)。slice(0,20).join('')==>将得到前20个单词return h.replace(h.split(/ (0,20).join(''),function(m){//将前20个单词替换20个单词后跟图像返回m + img;});});});  

< script src =https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js>< / script>< div style =width:450px;保证金左:自动; margin-right:autoclass =newsitem_text> Lorem ipsum dolor sit amet,consectetur adipiscing elit。Donec pellentesque urna eu pulvinar maximus。Sed elit nunc,vestibulum ut eros vitae,pellentesque rhoncus ipsum。in et metus non diam porttitor maximus iaculis NEC lectus。Quisque sodales scelerisque auctor。南rutrum venenatis性爱,EU condimentum ERAT placerat UT。Pellentesque的sed的Tempus SEM,EU灵猫存有。前庭NEC turpis convallis,dapibus马萨履历,posuere mauris。Suspendisse马提斯tincidunt LOREM。Aliquam ERAT volutpat。 Nullam at tincidunt erat,maximus laoreet ipsum.Quisque nunc neque,semper tincidunt placerat eget,blandit a ante。Suspendisse pulvinar,velit eu ultrices pulvinar,lacus sapien tincidunt ipsum,eget sollicitudin mauris eros molestie ex。Etiam quis orci dui。Phasellus vestibulum mollis molestie。Nam condimentum ornare nisl,sed finibus risus tempus vel。Lorem ipsum dolor sit amet,consectetur adipiscing elit。Interdum et malesuada fames ac ante在faucibus ipsum primis。 Vestibulum eget ullamcorper lorem。 Aliquam mollis elit在sem dapibus dapibus。前言中提到了一种有效的方法。 Sed feugiat tempus dictum。在leo ullamcorper,sodales turpis et,vehicula tellus中表达意见。 Duis pellentesque dui ac turpis tristique imperdiet。 Sed sed orci lectus。暂停非egestas sem,sed tincidunt sem。 Etiam laoreet dui sem。 Mauris hendrerit massa tempus,euismod arcu sit amet,eleifend quam。 Cum sociis natoque penatibus et magnis dis parturient montes,nascetur ridiculus mus。 Phasellus id fringilla mauris。在finibus Cras dapibus非lacus。 Nullam vitae sagittis neque。 Mauris libero velit,interdum non vehicula non,lacinia non augue。 Maecenas elementum lacinia interdum。 Morbi eget mollis nisl。整数accumsan调味剂tellus,lacinia pellentesque urna volutpat a。 Nullam semper sem et erat commodo sollicitudin。 Proin rhoncus felis eu aliquam venenatis。每个conubia nostra,每个inceptos himenaeos班级taciti sociosqu广告litora扭矩。 Nulla pretium v​​elit eu molestie condimentum。 Vestibulum vitae velit mi。整数nec leo quam。 Nam pulvinar ligula争执consectetur tristique。 Donec placerat faucibus diam坐amet fermentum。 Ut id pellentesque risus。 Nunc lacus orci,rhoncus ut risus sed,mattis posuere tellus。 < / div>


My code is supposed to place a banner between a content, but it is looping the banner. I need it to display a single banner only. I have tried using return false;, like the example, but it didn't work:

$(".newsitem_text").contents().each(function () {

    if (this.nodeType != 3) {
        newHtml += this.outerHTML;
        count += $(this).text().trim().split(/\s+/).length;
    } else {
        var wordList = $(this).text().trim().split(/\s+/);

        $.each(wordList, function (index, word) {
            count++;
            check();
            newHtml += ' ' + word;
        })
    }

    return false;
});

解决方案

See explanation inline in the code

Demo

jQuery(function($) {
  var img = '<img src="http://blog.leadlovers.com.br/wp-content/uploads/sites/23/2014/03/marca21-160x160.png" />'

  // For each element having class
  $(".newsitem_text").html(function(i, h) {
    // h is the oldHTML of the current element

    // h.split(/\s+/).slice(0, 20).join(' ') ==> will get the first twenty words
    return h.replace(h.split(/\s+/).slice(0, 20).join(' '), function(m) {
      // Replace the first 20 words by 20 words followed by image
      return m + img;
    });
  });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style="width:450px; margin-left:auto; margin-right:auto" class="newsitem_text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec pellentesque urna eu pulvinar maximus. Sed elit nunc, vestibulum ut eros vitae, pellentesque rhoncus ipsum. In et metus non diam porttitor maximus iaculis nec lectus. Quisque sodales scelerisque
  auctor. Nam rutrum venenatis eros, eu condimentum erat placerat ut. Pellentesque sed tempus sem, eu viverra ipsum. Vestibulum nec turpis convallis, dapibus massa vitae, posuere mauris. Suspendisse mattis tincidunt lorem. Aliquam erat volutpat. Nullam
  at tincidunt erat, maximus laoreet ipsum. Quisque nunc neque, semper tincidunt placerat eget, blandit a ante. Suspendisse pulvinar, velit eu ultrices pulvinar, lacus sapien tincidunt ipsum, eget sollicitudin mauris eros molestie ex. Etiam quis orci
  dui. Phasellus vestibulum mollis molestie. Nam condimentum ornare nisl, sed finibus risus tempus vel. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Interdum et malesuada fames ac ante ipsum primis in faucibus. Vestibulum eget ullamcorper
  lorem. Aliquam mollis elit in sem dapibus dapibus. Proin vel massa a arcu dictum tincidunt in ut ante. Sed feugiat tempus dictum. Praesent in leo ullamcorper, sodales turpis et, vehicula tellus. Duis pellentesque dui ac turpis tristique imperdiet. Sed
  sed orci lectus. Suspendisse non egestas sem, sed tincidunt sem. Etiam laoreet dui sem. Mauris hendrerit massa tempus, euismod arcu sit amet, eleifend quam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Phasellus
  id fringilla mauris. Cras dapibus non lacus at finibus. Nullam vitae sagittis neque. Mauris libero velit, interdum non vehicula non, lacinia non augue. Maecenas elementum lacinia interdum. Morbi eget mollis nisl. Integer accumsan condimentum tellus,
  lacinia pellentesque urna volutpat a. Nullam semper sem et erat commodo sollicitudin. Proin rhoncus felis eu aliquam venenatis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nulla pretium velit eu molestie
  condimentum. Vestibulum vitae velit mi. Integer nec leo quam. Nam pulvinar ligula congue consectetur tristique. Donec placerat faucibus diam sit amet fermentum. Ut id pellentesque risus. Nunc lacus orci, rhoncus ut risus sed, mattis posuere tellus.
  Nulla pellentesque eros sed neque consectetur dictum.</div>

这篇关于jquery - 打破/防止每个循环的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆