คำถามติดแท็ก javascript

สำหรับคำถามเกี่ยวกับการเขียนโปรแกรมใน ECMAScript (JavaScript / JS) และภาษา / การใช้งานต่างๆ (ไม่รวม ActionScript) แท็กนี้ไม่ค่อยได้ใช้คนเดียว แต่ส่วนใหญ่มักจะเกี่ยวข้องกับแท็ก [node.js], [jquery], [json] และ [html]

13
ฉันจะดึงความกว้างและความสูงที่แท้จริงขององค์ประกอบ HTML ได้อย่างไร
สมมติว่าฉันมีสิ่ง<div>ที่ฉันต้องการที่จะศูนย์ในการแสดงผลของเบราว์เซอร์ (วิวพอร์ต) หากต้องการทำเช่นนั้นฉันต้องคำนวณความกว้างและความสูงของ<div>องค์ประกอบ ฉันควรใช้อะไร โปรดระบุข้อมูลเกี่ยวกับความเข้ากันได้ของเบราว์เซอร์
893 javascript  html  xhtml  dhtml 

12
จะจัดส่งการกระทำ Redux ด้วยการหมดเวลาได้อย่างไร
ฉันมีการดำเนินการที่อัพเดตสถานะการแจ้งเตือนของแอปพลิเคชันของฉัน โดยปกติแล้วการแจ้งเตือนนี้จะเป็นข้อผิดพลาดหรือข้อมูลบางประเภท ฉันต้องส่งการกระทำอื่นหลังจาก 5 วินาทีที่จะกลับสถานะการแจ้งเตือนไปยังการเริ่มต้นดังนั้นจึงไม่มีการแจ้งเตือน เหตุผลหลักที่อยู่เบื้องหลังสิ่งนี้คือเพื่อมอบฟังก์ชันการทำงานที่การแจ้งเตือนหายไปโดยอัตโนมัติหลังจาก 5 วินาที ฉันไม่มีโชคกับการใช้งานsetTimeoutและกลับมาดำเนินการอีกครั้งและไม่สามารถหาวิธีการออนไลน์ได้ ดังนั้นคำแนะนำใด ๆ ยินดีต้อนรับ

30
จะตรวจสอบปุ่มตัวเลือกด้วย jQuery ได้อย่างไร?
ฉันลองตรวจสอบปุ่มตัวเลือกด้วย jQuery นี่คือรหัสของฉัน: <form> <div id='type'> <input type='radio' id='radio_1' name='type' value='1' /> <input type='radio' id='radio_2' name='type' value='2' /> <input type='radio' id='radio_3' name='type' value='3' /> </div> </form> และจาวาสคริปต์: jQuery("#radio_1").attr('checked', true); ใช้งานไม่ได้: jQuery("input[value='1']").attr('checked', true); ใช้งานไม่ได้: jQuery('input:radio[name="type"]').filter('[value="1"]').attr('checked', true); ใช้งานไม่ได้: คุณมีความคิดอื่นหรือไม่? ฉันพลาดอะไรไป

30
ตรวจจับเบราว์เซอร์มือถือ
ฉันกำลังมองหาฟังก์ชั่นที่คืนค่าบูลีนหากผู้ใช้มีเบราว์เซอร์มือถือหรือไม่ ฉันรู้ว่าฉันสามารถใช้navigator.userAgentและเขียนฟังก์ชั่นนั้นโดยใช้ regex แต่ตัวแทนผู้ใช้นั้นมีความหลากหลายเกินไปสำหรับแพลตฟอร์มที่แตกต่างกัน ฉันสงสัยว่าการจับคู่อุปกรณ์ที่เป็นไปได้ทั้งหมดจะเป็นเรื่องง่ายและฉันคิดว่าปัญหานี้ได้รับการแก้ไขก่อนหลายครั้งดังนั้นควรมีวิธีแก้ปัญหาที่สมบูรณ์สำหรับงานดังกล่าว ฉันดูที่เว็บไซต์นี้แต่น่าเศร้าที่สคริปต์นั้นเป็นความลับที่ฉันไม่รู้ว่าจะใช้เพื่อจุดประสงค์ของฉันได้อย่างไรซึ่งก็คือการสร้างฟังก์ชั่นที่คืนค่าจริง / เท็จ

24
วิธีส่งอุปกรณ์ประกอบฉากไปยัง {this.props.children}
ฉันพยายามหาวิธีที่เหมาะสมในการกำหนดองค์ประกอบบางอย่างซึ่งสามารถใช้ในวิธีทั่วไป: <Parent> <Child value="1"> <Child value="2"> </Parent> มีตรรกะที่เกิดขึ้นสำหรับการแสดงผลระหว่างผู้ปกครองและองค์ประกอบของเด็กแน่นอนคุณสามารถจินตนาการ<select>และ<option>เป็นตัวอย่างของตรรกะนี้ นี่คือการดำเนินการจำลองเพื่อวัตถุประสงค์ของคำถาม: var Parent = React.createClass({ doSomething: function(value) { }, render: function() { return (<div>{this.props.children}</div>); } }); var Child = React.createClass({ onClick: function() { this.props.doSomething(this.props.value); // doSomething is undefined }, render: function() { return (<div onClick={this.onClick}></div>); } }); คำถามคือเมื่อใดก็ตามที่คุณใช้{this.props.children}ในการกำหนดองค์ประกอบ wrapper คุณจะส่งผ่านคุณสมบัติบางอย่างให้กับลูก ๆ ของมันได้อย่างไร

12
การทำงานกับ $ scope $ emit และ $ scope $ on
ฉันจะส่ง$scopeวัตถุของฉันจากคอนโทรลเลอร์หนึ่งไปยังอีกที่ใช้.$emitและ.$onวิธีการได้อย่างไร function firstCtrl($scope) { $scope.$emit('someEvent', [1,2,3]); } function secondCtrl($scope) { $scope.$on('someEvent', function(mass) { console.log(mass); }); } มันไม่ทำงานอย่างที่ฉันคิดว่ามันควรจะเป็น วิธีการทำ$emitและการ$onทำงานหรือไม่

21
สีในคอนโซล JavaScript
คอนโซล JavaScript ในตัวของ Chrome สามารถแสดงสีได้หรือไม่ ฉันต้องการข้อผิดพลาดเป็นสีแดงคำเตือนเป็นสีส้มและconsole.logเป็นสีเขียว เป็นไปได้ไหม

25
ฉันจะเข้าถึงและประมวลผลวัตถุที่ซ้อนกันอาร์เรย์หรือ JSON ได้อย่างไร
ฉันมีโครงสร้างข้อมูลที่ซ้อนกันที่มีวัตถุและอาร์เรย์ ฉันจะดึงข้อมูลเช่นเข้าถึงค่าเฉพาะหรือหลายค่า (หรือคีย์) ได้อย่างไร ตัวอย่างเช่น: var data = { code: 42, items: [{ id: 1, name: 'foo' }, { id: 2, name: 'bar' }] }; ฉันจะเข้าถึงnameรายการที่สองได้itemsอย่างไร

14
ฉันจะรับค่าฟิลด์ป้อนข้อความโดยใช้ JavaScript ได้อย่างไร
ฉันทำงานกับการค้นหาด้วย JavaScript ฉันจะใช้แบบฟอร์ม แต่มันทำให้อย่างอื่นในหน้าของฉัน ฉันมีช่องป้อนข้อความนี้: <input name="searchTxt" type="text" maxlength="512" id="searchTxt" class="searchField"/> และนี่คือรหัส JavaScript ของฉัน: <script type="text/javascript"> function searchURL(){ window.location = "http://www.myurl.com/search/" + (input text value); } </script> ฉันจะรับค่าจากฟิลด์ข้อความใน JavaScript ได้อย่างไร


29
ลบองค์ประกอบย่อยทั้งหมดของโหนด DOM ใน JavaScript
ฉันจะลบองค์ประกอบย่อยทั้งหมดของโหนด DOM ใน JavaScript ได้อย่างไร สมมติว่าฉันมี HTML ต่อไปนี้ (น่าเกลียด): <p id="foo"> <span>hello</span> <div>world</div> </p> และฉันคว้าโหนดที่ฉันต้องการ: var myNode = document.getElementById("foo"); ฉันจะลบลูก ๆ ของ fooที่เหลือ<p id="foo"></p>อยู่ได้อย่างไร ฉันทำได้ไหม: myNode.childNodes = new Array(); หรือฉันควรจะใช้การรวมกันของremoveElement? ฉันต้องการคำตอบที่จะตรง DOM; แม้ว่าจะมีคะแนนเพิ่มหากคุณให้คำตอบเป็น jQuery พร้อมกับคำตอบเฉพาะ DOM เท่านั้น
873 javascript  dom 

17
ทำไมบางครั้ง setTimeout (fn, 0) จึงมีประโยชน์
ฉันเพิ่งพบข้อผิดพลาดค่อนข้างน่ารังเกียจรหัสนั้นโหลด<select>แบบไดนามิกผ่านทาง JavaScript โหลดแบบไดนามิกนี้<select>มีค่าที่เลือกไว้ล่วงหน้า ใน IE6 เราแล้วมีรหัสในการแก้ไขปัญหาที่เลือก<option>เพราะบางครั้ง<select>'s selectedIndexค่าจะออกจากซิงค์กับที่เลือก<option>' s indexคุณลักษณะดังต่อไปนี้: field.selectedIndex = element.index; อย่างไรก็ตามรหัสนี้ไม่ทำงาน แม้ว่าจะselectedIndexมีการตั้งค่าฟิลด์อย่างถูกต้อง แต่ดัชนีที่ไม่ถูกต้องก็จะถูกเลือก อย่างไรก็ตามถ้าฉันติดalert()คำสั่งในเวลาที่เหมาะสมตัวเลือกที่ถูกต้องจะถูกเลือก การคิดว่านี่อาจเป็นปัญหาเรื่องเวลาฉันลองสุ่มเลือกที่ฉันเคยเห็นในรหัสมาก่อน: var wrapFn = (function() { var myField = field; var myElement = element; return function() { myField.selectedIndex = myElement.index; } })(); setTimeout(wrapFn, 0); และสิ่งนี้ได้ผล! ฉันมีวิธีแก้ไขปัญหาแล้ว แต่ฉันไม่สบายใจที่ไม่รู้ว่าทำไมสิ่งนี้ถึงแก้ไขปัญหาของฉันได้ ใครบ้างมีคำอธิบายอย่างเป็นทางการ? ฉันหลีกเลี่ยงปัญหาเบราว์เซอร์ใดโดยเรียกใช้ฟังก์ชัน "ภายหลัง" โดยใช้setTimeout()?

30
JavaScript มีวิธีเช่น "range ()" เพื่อสร้างช่วงภายในขอบเขตที่ให้มาหรือไม่?
ใน PHP คุณสามารถทำ ... range(1, 3); // Array(1, 2, 3) range("A", "C"); // Array("A", "B", "C") นั่นคือมีฟังก์ชั่นที่ช่วยให้คุณได้รับช่วงของตัวเลขหรือตัวอักษรโดยผ่านขอบเขตบนและล่าง มีอะไรในตัว JavaScript สำหรับกำเนิดนี้? ถ้าไม่ฉันจะใช้มันอย่างไร?

18
ฉันจะลบสไตล์ที่เพิ่มด้วยฟังก์ชัน. css () ได้อย่างไร
ฉันกำลังเปลี่ยนCSSด้วยjQueryและฉันต้องการลบสไตล์ที่ฉันเพิ่มตามค่าอินพุต: if(color != '000000') $("body").css("background-color", color); else // remove style ? ฉันจะทำสิ่งนี้ได้อย่างไร โปรดทราบว่าบรรทัดด้านบนจะทำงานเมื่อใดก็ตามที่มีการเลือกสีโดยใช้เครื่องมือเลือกสี (เช่นเมื่อเมาส์เคลื่อนที่เหนือวงล้อสี) หมายเหตุที่สอง: ฉันไม่สามารถทำได้css("background-color", "none")เนื่องจากจะลบการกำหนดค่าเริ่มต้นออกจากไฟล์CSS ผมแค่อยากจะเอาbackground-colorรูปแบบอินไลน์ที่เพิ่มขึ้นโดยjQuery

3
JavaScript พร้อมลงชื่อเข้าใช้ด้านหน้าของฟังก์ชันนิพจน์
ฉันกำลังมองหาข้อมูลเกี่ยวกับฟังก์ชั่นที่ถูกเรียกใช้ในทันทีและบางแห่งที่ฉันพบสัญกรณ์นี้: +function(){console.log("Something.")}() บางคนสามารถอธิบายให้ฉันฟังได้ว่าการ+ลงชื่อเข้าใช้ที่หน้าฟังก์ชันมีความหมายว่าอย่างไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.