Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 12

20
votes
answers
22 views
+10

JavaScript用*替换前5个字符

我需要Javascript Regex来替换前5个字符。以下是一些例子。第一行是输入,第二行是预期输出。你能告诉我如何实现这个目标吗?

我试过了。但是如果输入小于4,它们都不起作用。

 。{5}到*****和^ d {5}到*****   

示例

  123456789 XXXXX6789 123 XXX 123456 XXXXX6 1 X 12345 XXXXX  
    
        
沙发
+40

你的第一个正则表达式需要一点调整,这应该有效。

  let reg = /.{1,5}/ let string ='123456789'; let string2 ='123'; console.log(string.replace(reg,(m)=>“X”.repeat(m.length))); console.log(string2.replace(reg,(m)=>“X”.repeat(m.length)));    

     
			
        
板凳
+40

您可以在 .replace()中使用回调函数或lambda:

 < code> var arr = ['123456789','123','123456','1','12345']; arr.forEach(el =&gt; console.log(el,'::',el.replace(/ ^ d {1,5} /,m =&gt; m.replace(/ d / g,'X') )))   

     
			
        
地板
+30

如果你不是在寻找正则表达式解决方案,那么你也可以尝试这个选项。基于substring()方法的替代方法

  function replace_String(string,numberofchar,chartoreplace){return string.substring(0,numberofchar).split(”“)。map(ele =&gt; ele = chartoreplace).join(”“ ).concat(string.substring(numberofchar,string.length))} console.log(replace_String(“123456789”,5,“X”))console.log(replace_String(“1”,1,“*”))   

     
			
        
4楼
+30

你可以做很多方法。一个是两个替换语句

  const hideFive = str =&gt; str.replace(/ ^ d {1,5} /,x =&gt; x.replace(/./ g,'*'))var tests = [“1”,“12”,“123”,“1234 “,”12345“,”123456“,”1234567“,”12345678“,”1234567890“] tests.forEach(val =&gt; console.log(val,'=',hideFive(val)))    

没有胖箭

<

5楼
+30

你可以替换第一个字符并取出字符串的切片。

  const replaceFirst5 = s =&GT; '*'。repeat(Math.min(5,s.length))+ s.slice(5); 的console.log(replaceFirst5( “123456789”)); console.log(replaceFirst5(“123”));    

     
			
        
6楼
+30

您可以使用 replace repeat

  ^。{1,5}   
  • ^ - 字符串开头
  • 。{1,5} - 匹配除新行以外的任何内容,最少一次,最多5次< / li>

      let replaceFirst5 =(str)=&gt; {return str.replace(/ ^。{ 1,5} /,m =&gt;“X”.repeat(m.length))} console.log(replaceFirst5(“123456789”))控制台。log(replaceFirst5(“123”))   
    
         
    			
            

    它使用解构将部分返回值分配给现有标识符主体和客户。 - jonrsharpe 8月28日9:25

    @jonrsharpe可能值得指出,只有客户被破坏.. - Keith 8月28日9:34

7楼
0

假设这些数字包含在名为“数字”的类中

jQuery代码

  $。each('。numbers' ,function(){let num = $(this).text(); var j =“”; for(let i = 0; i&lt; num.length; i ++){if(i == 5){break;} j + =“*”;} var res = str.replace(num.substring(0,5),j); document.getElementById(“demo”)。innerHTML = res;});  
     
			
        
0
votes
answers
78 views
+10

jquery移動更改複選框顏色

0

當選中其他顏色時,如何更改複選框顏色(藍色)和複選框圖標顏色(白色)。jquery移動更改複選框顏色

<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" /> 
 
    <script src="https://code.jquery.com/jquery-1.11.1.min.js"></script> 
 
    <script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> 
 

 
    <form> 
 
     <label> 
 
      <input type="checkbox" name="checkbox-0 ">Check me 
 
     </label> 
 
    </form>

+0

雖然改變背景顏色是微不足道的CSS,爲圖標的顏色有兩種顏色集:*白色*和*黑*。您可以通過應用「ui-alt-icon」類來顯示*黑色*圖標。您無法着色圖標,因爲圖標圖像未內聯。以下是替代圖標集的參考資料:http://demos.jquerymobile.com/1.4.5/icons/ – deblocker

沙发
0
0

對於藍色:

.ui-btn.ui-checkbox-on.ui-btn-a:after { 
    background-color: red !important; 
} 

白色的圖標是一個SVG:

.ui-icon-check:after { 
    background-image: url(newicon.svg); 
} 
板凳
0
0

所有你需要做的是確定所使用的類由jquery。之後,你可以簡單地套用屬性這樣

.ui-btn.ui-checkbox-on:after { 
 
    background-color: red !important; 
 
} 
 

 
.ui-btn.ui-checkbox-off:after { 
 
    background-color: blue !important; 
 
}
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" /> 
 
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script> 
 
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> 
 

 
<form> 
 
    <label> 
 
      <input type="checkbox" name="checkbox-0 ">Check me 
 
     </label> 
 
</form>

0
votes
answers
43 views
+10

採取CSS的第一要素

1

你好,我有一個元素兩個CSS樣式屬性樣式中的第一和jQuery的屬性CSS中的第二個,我想採取的第一個 這樣的:採取CSS的第一要素


$(document).ready(function() { 
 

 
	 jQuery(".iview-group-19").iView({ 
 
	 	 captionSpeed: 500, // speed to show caption 
 
	 	 captionOpacity: 1, // caption opacity 
 
	 	 captionEasing: 'easeInOutSine', // caption transition easing effect, use JQuery Easings effect 
 
	 	 customWidth: 1920, 
 
	 	 customHtmlBullet: false, 
 
	 	 rtl: false, 
 
	 	 height:500, 
 

 
    }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="iview iview-group-19" id="slide-height" style="height: 351px;">

沙发
0
1

首先,您需要檢查元素中是否存在樣式元素。如果不存在inline屬性。 jQuery的CSS樣式將呈現。元素內聯總是優先。如果元素中缺少style屬性,jquery css會替換該樣式。

$(function(){ 
 

 
if(!$("h1").attr("style")){ 
 
	 	 $("h1").css({ 
 
	 	 	 	 	 "margin":"7px", 
 
	 	 	 	 	 "border":"10px solid red !important", 
 
	 	 	 	 	 "padding":"10px" 	 
 
	 	 }); 
 
} 
 

 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<h1 style="margin:1px;border:1px solid red;padding:10px;" > 
 
Hello test 
 
</h1>

板凳
0
0

嘗試這樣做:

style="height: 351px !important;" 
0
votes
answers
39 views
+10

顯示在滑軌

0

若干嵌套形式我有這種選擇在滑軌顯示在滑軌

<%= g.select :num_periods, options_for_select([["Mensual", 12], ["Semestral", 6], ["Trimestral", 4], ["Anual", 1]]) %> 

根據我想顯示n次此嵌套形式所選擇的選項。 (我有一個循環,現在顯示它)

<% for i in (1..4) %> 
    <%= g.fields_for :periods do |p| %> 
    <%= p.label "Propuesto" %> 
    <%= p.number_field :proposed, class:"form" %> 
    <%= p.hidden_field :reached, :value => -1 %> 
<% end %> 

我發現,這可能使用JQuery達到,但我不知道怎麼了,可能有人幫助我嗎?

+0

繼續看看你的循環的HTML輸出,並編寫一個jQuery函數,將它輸出到所需容器的'x'次。如果不知道你要在這裏做什麼,很難解釋得更徹底。 –

沙发
0
0

select選項將生成html,即您的起點編寫jquery函數。你需要與chrome developer tolls檢查在你的頁面生成的HTML

<%= g.select :num_periods, options_for_select([["Mensual", 12], ["Semestral", 6], ["Trimestral", 4], ["Anual", 1]]) %> 

它看起來應該像這樣從ActionView::Helpers::FormOptionsHelper的API頁面:

<select name="g[num_periods]" id="g_num_periods"> 
    <option value="12">Mensual</option> 
    <option value="6">Semestral</option> 
    <option value="4">Trimestral</option> 
</select> 

那麼容易的選擇,在視圖中顯示所有輸入字段,並根據您的需要隱藏那些不需要的字段。因此,他們都將被隱藏,你可以告訴你需要用一個:

$('select').change(function(){ 
    $('select option:selected').click(function() { 
     var option_selected = $(this).text(); 
     //now you need to find the div to show and use the .show function to display it 
     }); 
}); 

這是我jsfiddle

我知道這是不是一個很好的解決方案,但我沒有全部來自信息你的代碼也,我不知道該附加格的形式將允許你這樣做POST請求,因爲在防止CSRF

形式的authenticity_token另外這給你更多的信息關於authenticity token

0
votes
answers
43 views
+10

加載新的html內容後工具提示不起作用

0

我在加載新元素在div中後顯示工具提示有問題。加載新的html內容後工具提示不起作用

我的內容加載代碼:

$ (Function() { 
     
     $ ('. Prop-next'). Click (function() { 
         $ ('.props') .html ('<img src = "/ images/loading.gif" class = "loading" />') 
         var p = parseInt ($ (this) .attr ('p')) + 3; 
         $ (this) .attr ('p', p); 
         $ .post ('/ lib/props.php', {p: p}, function (item) { 
             $ ('. Props'). Html (item); 
         }); 
     }); 
}); 
調用div中.prop,接下來點擊元素時

.props新的內容出現,而腳本不起作用:

提示代碼:

var tooltips = document.querySelectorAll ('.tooltip'); 

window.onmousemove = function (e) { 
     var x = (e.clientX - 350) + 'px', 
         y = (e.clientY + 50) + 'px'; 
     for (var i = 0; i <tooltips.length; i ++) { 
         tooltips [i] .style.top = y; 
         tooltips [i] .style.left = x; 
     } 
}; 
+0

在您的查詢選擇器和網址中存在多個空格('')字符使這個腳本無法工作 – 3Dos

+0

空格w ^在代碼在編輯器中輸入時創建。我向你保證代碼中沒有空格 – urbmake

沙发
0
0

您的綁定鼠標移動的代碼僅在頁面加載時完成一次,並且因此導致新項目(通過AJAX下線的項目)不是h AVING是暴食補充,而不是..:

window.onmousemove = function (e) { // .. } 

嘗試這麼加dinamicly,或現場掛鉤,,這樣的事情應該工作:

$('body').on('mousemove', '.tooltip', function(e) { 
    var x = (e.clientX - 350) + 'px', 
    y = (e.clientY + 50) + 'px'; 
    for (var i = 0; i < tooltips.length; i++) { 
    tooltips[i].style.top = y; 
    tooltips[i].style.left = x; 
    } 
}); 

在這一行:$('body').on('mousemove', '.tooltip', ..你定義你的父元素(body)跟蹤鼠標移動僅在.tooltip元素上,並且會跟蹤您在頁面上顯示的新元素:)

+0

你提供的代碼不起作用。粘貼代碼:var tooltips = document.querySelectorAll('。tooltip'); (e.clientX-350)+'px'; var y =(e.clientY +('body')。('mousemove','.tooltip',function 50)+'px'; for(var i = 0; i urbmake

+0

嘗試「提醒」某些內容,以查看我的代碼是否獲得了新項目的可執行文件 –

+0

我從瀏覽器中刪除了緩存,並且代碼正常工作。謝謝:) – urbmake

0
votes
answers
50 views
+10

當發送POST請求時,我應該何時JSON.stringify()它或不?

1

雖然從不同的地方看教程和代碼示例,但我注意到有時在代碼中,通過HTTP請求中的「數據」標頭髮送的JSON對象在發送之前會使用JSON.stringify(data)進行處理,並且有時會在不被「串化「首先。當發送POST請求時,我應該何時JSON.stringify()它或不?

var data = { 
    Email: self.registerEmail(), 
    Password: self.registerPassword(), 
    ConfirmPassword: self.registerPassword2() 
}; 

$.ajax({ 
    type: 'POST', 
    url: '/api/Account/Register', 
    contentType: 'application/json; charset=utf-8', 
    data: JSON.stringify(data) 
}).done(function (data) { 
    self.result("Done!"); 
}).fail(showError); 

在這個例子中,如果我理解正確的話,這將data轉換成類似: {"Email":"[email protected]","Password":"Password1!","ConfirmPassword":"Password1!"}

但在這個

從.NET WEB API教程,客戶端代碼使用實例部分來自相同的客戶端代碼:

var loginData = { 
    grant_type: 'password', 
    username: self.loginEmail(), 
    password: self.loginPassword() 
}; 

$.ajax({ 
    type: 'POST', 
    url: '/Token', 
    data: loginData 
}).done(function (data) { 
    self.user(data.userName); 
    // Cache the access token in session storage. 
    sessionStorage.setItem(tokenKey, data.access_token); 
}).fail(showError); 

JSON.stringify()未使用。有什麼區別?如果我的理解正確,HTTP請求是基於文本的,因此我曾經將所有請求串聯起來。

編輯:

這些是KnockoutJS數據綁定元素:

//...Other HTML markups... 

<input class="form-control" type="text" data-bind="value: registerEmail"/> 
//...Other HTML markups... 

<input class="form-control" type="password" data-bind="value: registerPassword"/> 
//...Other HTML markups... 

<input class="form-control" type="password" data-bind="value: registerPassword2" /> 
//...Other HTML markups... 

<input class="form-control" type="text" data-bind="value: loginEmail"/> 
//...Other HTML markups... 

<input class="form-control" type="password" data-bind="value: loginPassword"/> 
+0

我想這是因爲JSON.stringify被調用,如果數據是一個對象,如果它的字符串,它只是直接發送 –

+0

@MrZach從'var data'和'var loginData'判斷,不是他們都JS變量? – CodeIntern

+0

在第一個示例中,您將對象轉換爲字符串並將其設置爲傳遞給ajax函數的對象的屬性「數據」。 第二個例子是你沒有將對象轉換爲字符串(通過JSON.stringify),所以對象的「data」屬性將是一個對象,而不是第一個例子中的字符串。 –

沙发
0
0

兩種方式,您可以將數據發送到後端。如果你發送字符串數據,你需要在後端解析。即使您發送像Array或Object這樣的數據,也可以直接分配給任何變量。

0
votes
answers
62 views
+10

laravel中的引導模態動態內容ajax

0

我想從ajax的引導模式中加載內容我可以在警報或控制檯日誌中獲取它,但是我想更新的部分消失了!我嘗試了$('。modal-content')。html(數據),但是我的模態內容消失或者.append(數據),但它不起作用!laravel中的引導模態動態內容ajax

我重拍了它真的很簡單,但它仍然沒有工作,即時通訊我錯誤的?

感謝您的時間和幫助!

部分關閉我的主頁

<a class="btn btn-primary" class="quickview22" href="#" data-target="#quickviewMain55" data-categorie="1" data-trigger="hover" data-toggle="modal">Trigger modal</a> 
@include('bootmodal') 

我bootmodal觀點

<div class="modal fade in " id="quickviewMain55"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
       <h4 class="modal-title">Modal ffffffffffffffftitle</h4> 
      </div> 
      <div class="modal-body"> 
       <h1>{{ $quickProducts1->first()->name }}</h1> 

      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
       <button type="button" class="btn btn-primary">Save changes</button> 
      </div> 
     </div> 
    </div> 
</div> 

這是我的腳本

jQuery(document).ready(function($) { 
    $('#quickviewMain55').on('show.bs.modal', function(e) { 

    var category = $(e.relatedTarget).data('categorie'); 

    $.ajax({ 

      url: 'quick-view', 
      data: { category : category }, 
      success: function(data) 
      { 


     $('.modal-content').html(data); 


      alert(data); 
      } 
     }); 


}); 
}); 

     $.ajaxSetup({ 
    headers: { 
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
    } 
}); 



</script> 

我控制器

class QuickViewController extends Controller 
{ 
    public function index(Request $request) 
    { 



     $quickProducts1 = Product::where('category_id', $request->category)->get(); 



     return view('bootmodal', compact('quickProducts1'))->render(); 
    } 

} 
沙发
0
0

您確定要將它追加到.modal-content而不是.modal-content .modal-body

你可能也想嘗試: $('.modal-content .modal-body').html(data)

讓我們更新!

肯尼

+0

我個人建議'$(」模式內容.modal體H1' )。追加(數據)' – ProEvilz

0
votes
answers
54 views
+10

Javascript JSON返回3個項目後插入新行

1

我正在使用Google工作表在我的網站上填充與我參加的聯盟有關的數據。除了一個非常微小的方面,一切都很好。我一直在網上尋找一種方法來做到這一點,似乎無法找到一種資源,讓我有辦法做到這一點。Javascript JSON返回3個項目後插入新行

我在網站上使用Bootstrap 4,並使用卡來顯示我的數據。使用Card-Deck功能,我正在嘗試通過團隊建立一組名單,以便聯盟球員可以看到誰在球隊中。這按預期工作並構建一排卡片。我想要做的只是連續排列3張牌,因爲它實際上會壓縮數據,而且我們擁有多達16支球隊的聯賽。

這裏是我的javascript:

// make JSON call to Google Data API 
 
$.getJSON(url, function(data) { 
 

 
    //Build the Card Group 
 
    var cardstart = ''; 
 
    cardstart += '<div class="card-deck">'; 
 

 
    var cardend = ''; 
 
    cardend += '</div>'; 
 

 
    //Build the Sunday Juniors Rosters 
 
    var sunjunroster = ''; 
 

 
    //Loop to build the html output for team name 
 
    var entrysunjunroster = data.feed.entry; 
 
    for (var ia = 0; ia < entrysunjunroster.length; ia++) { 
 
    if (entrysunjunroster[ia]['gsx$night']['$t'] == "sunday" && entrysunjunroster[ia]['gsx$format']['$t'] == "juniors") { 
 
     sunjunroster += '<div class="card border border-dark mb-3">'; 
 
     sunjunroster += '<h4 class="card-header bg-bcaprimary text-light text-center">' + entrysunjunroster[ia]['gsx$teamname']['$t'] + '</h4>'; 
 
     sunjunroster += '<div class="card-body p-0">'; 
 
     sunjunroster += '<table class="table table-sm mb-0 tablesorter table-striped"><tbody>'; 
 
     if (entrysunjunroster[ia]['gsx$p1']['$t'] !== '') { 
 
     sunjunroster += '<tr><td class="text-center">' + entrysunjunroster[ia]['gsx$p1']['$t'] + '</td></tr>'; 
 
     } 
 
     if (entrysunjunroster[ia]['gsx$p2']['$t'] !== '') { 
 
     sunjunroster += '<tr><td class="text-center">' + entrysunjunroster[ia]['gsx$p2']['$t'] + '</td></tr>'; 
 
     } 
 
     if (entrysunjunroster[ia]['gsx$p3']['$t'] !== '') { 
 
     sunjunroster += '<tr><td class="text-center">' + entrysunjunroster[ia]['gsx$p3']['$t'] + '</td></tr>'; 
 
     } 
 
     if (entrysunjunroster[ia]['gsx$p4']['$t'] !== '') { 
 
     sunjunroster += '<tr><td class="text-center">' + entrysunjunroster[ia]['gsx$p4']['$t'] + '</td></tr>'; 
 
     } 
 
     if (entrysunjunroster[ia]['gsx$p5']['$t'] !== '') { 
 
     sunjunroster += '<tr><td class="text-center">' + entrysunjunroster[ia]['gsx$p5']['$t'] + '</td></tr>'; 
 
     } 
 
     if (entrysunjunroster[ia]['gsx$p6']['$t'] !== '') { 
 
     sunjunroster += '<tr><td class="text-center">' + entrysunjunroster[ia]['gsx$p6']['$t'] + '</td></tr>'; 
 
     } 
 
     if (entrysunjunroster[ia]['gsx$p7']['$t'] !== '') { 
 
     sunjunroster += '<tr><td class="text-center">' + entrysunjunroster[ia]['gsx$p7']['$t'] + '</td></tr>'; 
 
     } 
 
     if (entrysunjunroster[ia]['gsx$p8']['$t'] !== '') { 
 
     sunjunroster += '<tr><td class="text-center">' + entrysunjunroster[ia]['gsx$p8']['$t'] + '</td></tr>'; 
 
     } 
 
     if (entrysunjunroster[ia]['gsx$p9']['$t'] !== '') { 
 
     sunjunroster += '<tr><td class="text-center">' + entrysunjunroster[ia]['gsx$p9']['$t'] + '</td></tr>'; 
 
     } 
 
     if (entrysunjunroster[ia]['gsx$p10']['$t'] !== '') { 
 
     sunjunroster += '<tr><td class="text-center">' + entrysunjunroster[ia]['gsx$p10']['$t'] + '</td></tr>'; 
 
     } 
 
     if (entrysunjunroster[ia]['gsx$p11']['$t'] !== '') { 
 
     sunjunroster += '<tr><td class="text-center">' + entrysunjunroster[ia]['gsx$p11']['$t'] + '</td></tr>'; 
 
     } 
 
     if (entrysunjunroster[ia]['gsx$p12']['$t'] !== '') { 
 
     sunjunroster += '<tr><td class="text-center">' + entrysunjunroster[ia]['gsx$p12']['$t'] + '</td></tr>'; 
 
     } 
 
     if (entrysunjunroster[ia]['gsx$p13']['$t'] !== '') { 
 
     sunjunroster += '<tr><td class="text-center">' + entrysunjunroster[ia]['gsx$p13']['$t'] + '</td></tr>'; 
 
     } 
 
     if (entrysunjunroster[ia]['gsx$p14']['$t'] !== '') { 
 
     sunjunroster += '<tr><td class="text-center">' + entrysunjunroster[ia]['gsx$p14']['$t'] + '</td></tr>'; 
 
     } 
 
     if (entrysunjunroster[ia]['gsx$p15']['$t'] !== '') { 
 
     sunjunroster += '<tr><td class="text-center">' + entrysunjunroster[ia]['gsx$p15']['$t'] + '</td></tr>'; 
 
     } 
 
     if (entrysunjunroster[ia]['gsx$p16']['$t'] !== '') { 
 
     sunjunroster += '<tr><td class="text-center">' + entrysunjunroster[ia]['gsx$p16']['$t'] + '</td></tr>'; 
 
     } 
 
     sunjunroster += '</tbody></table></div></div>'; 
 
    } 
 
    } 
 

 
    // output html - Sunday Juniors 	 
 
    $('.sunjunroster').html(cardstart + sunjunroster + cardend); 
 

 
});

,並建立此我的網頁上的HTML:

<div class="container-fluid"> 
 
    <div class="row"> 
 
    <div class="col"> 
 
     <div class="sunjunroster"></div> 
 
    </div> 
 
    </div> 
 
</div>

我知道用PH P可以計算查詢中返回的項目並插入一行代碼,然後繼續查詢。這是我想在這裏做的。

它會在哪裏拿起計數,並在3個項目後,它關閉col和row div,並將它們添加回來以開始新行。

因此,這將插入此代碼:

</div></div><div class="row"><div class="col">

,然後繼續從JSON數組建設。

+0

我還在學習javascript/jquery,你能解釋我在哪裏添加這個嗎? 我想如果我看到你說的話,我應該用這樣的: 如果(VAR IA%3 == 0){ sunjunroster + ='

'; } –

沙发
0
0

使用模運算符%。它返回一個分區的其餘部分。可以被3除的整數的其餘部分總是0,所以我們可以利用這個優勢。

for (var ia = 0; ia < entrysunjunroster.length; ia++) { 
    if (ia % 3 == 0 && ia > 0) 
    { 
     sunjunroster += '</div></div><div class="row"><div class="col">'; 
    } 
    else if (ia == 0) //expection for zero index, nothing to close 
    { 
     sunjunroster += '<div class="row"><div class="col">'; 
    } 

    //rest of your code... 
} 
+0

我試過實現這一點,但它似乎返回第1行的1個項目,然後在第2個項目,並沒有關閉行後,但開始一個新的行,在同一個地方。 –

+0

的確,在我的腦海中想象這一點,使得看到屏幕上發生的事情變得更加困難,更新應該起作用。 – Mouser

+0

幾乎完美。我不得不刪除!在第二行的末尾讓它起作用。這裏演示:https://www.westmibcapl.com/leagues/ 點擊右上角的團隊名單,看看它的面板。 –

0
votes
answers
33 views
+10

如果一個元素有一個特定的類做的另一件

0

上......我有jQuery的.hasClass方法的問題。如果一個元素有一個特定的類做的另一件

例如,如果存在.show類的div元素,我希望我的菜單按鈕顏色變爲紅色。

所以我寫了這個代碼解釋這個解決方案

if ($(".navbar-collapse").hasClass("show")) 
    $(".menuIcon").css("color", "red"); 

但是當我測試此代碼沒有工作...... 我怎麼能解決這個問題?

+0

你可以發表你的目標代碼? –

沙发
0
0

試試這個:

$(".navbar-collapse.show").find(".menuIcon").css("color", "red"); 

你可以改變菜單中的事件相關聯。

+0

不,它不是關於{}當我測試的另一個例子 –

+0

好吧,看更新,將工作:)你可以避開狀態。 – Nick

板凳
0
0

只有CSS:

.navbar-collapse.show { 
    color:red!important; 
} 
地板
0
1

你的代碼是完全正確的,它應該工作。只要確保
1-你的jQuery庫是存在,coreectly加載。
2-與您的代碼相關的樣式存在於頁面中並且爲真
3-在$(document).ready(function(){ });中包含您的代碼,以確保樣式在代碼執行前加載。

$(document).ready(function(){ 
    if ($(".navbar-collapse").hasClass("show")){ 
     $(".menuIcon").css("color", "red"); 
     } 
}); 
+0

你確定嗎?因爲我認爲我不得不使用另一種方法,因爲我的show類不是靜態的,它將在一個元素中! –

4楼
0
0

您的代碼看起來是不錯,但您所遇到的問題可能是由於一個或多個以下:

  • 你可能會丟失包括jQuery的(包括它使用script如果標籤的話)
  • 你可能有一個錯誤在控制檯(修復它如果是的話)
  • 您的代碼可能具有showclass創建或前您的標記之前執行class被添加到該標籤
  • showclass可能被添加到另一個標籤
  • 您可能希望覆蓋background-color代替color
  • 另一個JavaScript可能會覆蓋您期望的行爲

要獲得更確切的回答,你需要問一個更確切的問題。

+0

我稍後再試試這個.... –

+0

我認爲這可能是有關!在CSS –

+0

@ mr.md重要的關鍵字!重要覆蓋任何其他規則。什麼規則對你來說很重要? –

0
votes
answers
33 views
+10

目標類別通過單選按鈕選中

0

我使用三個單選按鈕作爲表單。使用jQuery,我試圖將類添加到具有單選按鈕的div。但它是針對所有的div,而不是隻針對檢查的div,而不是刪除unchecked div的類。目標類別通過單選按鈕選中

小提琴:https://jsfiddle.net/zqatxvgs/

的Html

<form action=""> 
<div class="field-box"> <input type="radio" name="gender" value="male">Male<br></div> 
<div class="field-box"> <input type="radio" name="gender" value="female"> Female<br></div> 
<div class="field-box"> <input type="radio" name="gender" value="other"> Other</div> 

jQuery的

$('input:radio').change(function(){ 
if($(this).is(":checked")) { 
    $('.field-box').addClass("option-selected"); 
} else { 
    $('.field-box').removeClass("option-selected"); 
} 
}); 
沙发
0
1

您有一個通用選擇器,而不是將當前元素定位到父級。你應該嘗試一下thisparent

$('input:radio').change(function(){ 
 
    $(".option-selected").removeClass("option-selected"); 
 
    if($(this).is(":checked")) { 
 
    $(this).parent().addClass("option-selected"); 
 
    } 
 
});
.option-selected { 
 
    background: yellowgreen; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form action=""> 
 
<div class="field-box"> <input type="radio" name="gender" value="male"> Male<br></div> 
 
<div class="field-box"> <input type="radio" name="gender" value="female"> Female<br></div> 
 
<div class="field-box"> <input type="radio" name="gender" value="other"> Other</div> 
 
</form>

+0

哇..你覺得呢?我無法停止這種想法。 –

+0

只是開玩笑的兄弟:) –

+0

謝謝你的回答。當收音機默認已被選中時,它不工作。檢查這個小提琴:https://jsfiddle.net/4tacqvrj/1/ – YOU

板凳
0
1

你必須使用$(this)關鍵字否則它會添加類所有div和沒有必要的if條件。你可以簡單地做這樣的

$('input:radio').change(function() { 
 
    $('.field-box').removeClass("option-selected"); 
 
    $(this).closest('.field-box').addClass("option-selected"); 
 
});
.option-selected { 
 
    background: yellowgreen; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form action=""> 
 
    <div class="field-box"> <input type="radio" name="gender" value="male"> Male<br></div> 
 
    <div class="field-box"> <input type="radio" name="gender" value="female"> Female<br></div> 
 
    <div class="field-box"> <input type="radio" name="gender" value="other"> Other</div> 
 
</form>

P.S你的if-else邏輯也是錯誤的。當一個又一個被選中

+0

謝謝你的回答。當收音機默認已被選中時,它不工作。檢查這個小提琴:https://jsfiddle.net/4tacqvrj/ – YOU

+0

@YOU只需添加一個類到最初的無線電廣播這是檢查像這樣https://jsfiddle.net/4tacqvrj/2/ –

地板
0
0

只是遍歷父元素來選擇它和風格分配給它

$('input:radio').change(function(){ 
    if($(this).is(":checked")) { 
     $(this).parent('.field-box').addClass("option-selected"); 
    } else { 
     $(this).parent('.field-box').removeClass("option-selected"); 
    } 
}); 
4楼
0
0

非jQuery的方式它不會從以前的一個刪除類

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>Toggle Radio</title> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
</head> 
<body> 
<style type="text/css"> 
    .option-selected { 
    background: yellowgreen; 
} 
</style> 

<form action="" name="genderForm"> 
<div class="field-box"> <input onchange="highlightRadio()" type="radio" name="gender" value="male"> Male<br></div> 
<div class="field-box"> <input onchange="highlightRadio()" type="radio" name="gender" value="female"> Female<br></div> 
<div class="field-box"> <input onchange="highlightRadio()" type="radio" name="gender" value="other"> Other</div> 
</form> 

<script type="text/javascript"> 
    function highlightRadio() { 
    let activeRadioButton = document.querySelector('input[type = "radio"]:checked'); 
    let allRadioButton = document.querySelectorAll('input[type = "radio"]'); 
    for(i=0;i<allRadioButton.length;i++) { 
     allRadioButton[i].parentElement.classList.remove('option-selected'); 
    } 
    activeRadioButton.parentElement.classList.add('option-selected');  
    return false; 
    } 
</script> 

</body> 
</html>