Tag: javascript

JQuery – 将表单数据序列化到Associated Array

如何将HTML表单数据序列化为关联数组,而不是使用jQuery使用$ .serializeArray()生成的数字索引格式? jQuery.serializeArray给出的输出使得使用数字索引键直接选择值很困难。当在表单输入中使用复选框时,可能会发生轻微的索引转换。 serializeArray的输出 [ 0: [name: ‘field-1’, value: ‘val1’], 1: [name: ‘check’, value: ‘val2’], 2: [name: ‘check’, value: ‘val3’] ] 期望的输出 – 更可靠的格式和更简单的价值访问 [ ‘field-1’ : ‘val1’, ‘check’ : [ 0 : ‘val2’, 1 : ‘val3’ ] ]

使用嵌入或对象标记中的元素

我在页面中插入了带有嵌入或对象标记的svg图形: 图像正确加载,我可以使用浏览器调试器查看其SVG结构。 我看到了所有元素id和属性,但在我看来,没有办法在页面上使用我的脚本选择这些元素: $(‘#graphics path’).length; // 0 (jQuery) $(‘path’).length; // 0 anyway 是否可以像往常一样浏览图形元素?

数据表类型错误:c未定义

我尝试使用jQuery DataTables,但我得到了错误 TypeError:c未定义 我不知道我的代码有什么问题,因为我可以看到JSON正确检索并且格式正确但我不知道它有什么问题我得到了上述错误。 我的JSON: {“Data”:[{“LOGIN”:10184},{“LOGIN”:10214},{“LOGIN”:10180},{“LOGIN”:10187},{“LOGIN”:10179},{“LOGIN”:10280},{“LOGIN”:201},{“LOGIN”:10238},{“LOGIN”:10296},{“LOGIN”:10312}]} 和我的DataTables代码: $(document).ready(function() { $(‘#tablename’).dataTable( { “processing”: true, “serverSide”: true, “ajax”: { “type”: “POST”, “url”: “https://test.com/api/db/select”, “data”: function ( json ) { return JSON.stringify( { “Sql”: 12 } );}, “contentType”: “application/json; charset=utf-8”, “dataType”: “json”, “processData”: true, beforeSend : function(xhr){ var access_token = sessionStorage.getItem(‘access_token’); xhr.setRequestHeader(‘Authorization’, ‘Bearer ‘ + access_token); } }, […]

Lodash .clone和.cloneDeep行为

我尝试用嵌套对象克隆一个对象数组。 就像是: var data = [ { id: 1, values: { a: ‘a’, b: ‘b’ } }, { id: 2, values: { c: ‘c’, d: ‘d’ } } ]; _。克隆 使用_.clone方法和isDeep参数为true : var clone = _.clone(data, true); data[1].values.d = ‘x’; console.log( _.isEqual(data, clone) ); // true, clone[1].values.d == ‘x’ 我期待clone[1].values.d == ‘d’ : 如果isDeep为true,则也将克隆嵌套对象,否则将通过引用分配它们。 怎么了? […]

在第一张幻灯片上禁用Prev Control并在最后一张幻灯片上禁用Next控件

使用Slick并寻找一种方法,在用户单击下一个箭头之前禁用和隐藏prev控件。 同样,我想让Next控件在用户到达最后一张幻灯片后被禁用并隐藏。 我想要完成的一个很好的例子就在这里 光滑是否已经为此我忽略了一个属性? 这是否可以通过添加禁用类使用CSS来实现? 我发现的唯一相似之处就是这个 $(‘.pages .slider’).slick({ autoplay: true, autoplaySpeed: 5000, infinite: false, onAfterChange: function(slide, index) { if(index == 4){ $(‘.pages .slider’).slickPause(); 但它不完全是我想要的。

使用jQuery循环遍历嵌套对象

嘿大家我试图找到循环数组最有活力的方法并返回特定的值返回特定的值… json结构很深,可能会改变,是否有一个$ .each()公式可以帮助? 例: var myobj = { obj1: { key1: ‘val1’, key2: ‘val2’ }, obj2: { key1: ‘2val1’, key2: { nest1: ‘val1’, nest2: ‘val2’, nest3: ‘val3’ }, key3: { nest1: ‘K3val1’, nest2: ‘K3val2’, nest3: [ { nest1: ‘val1’, nest2: ‘val2’, nest3: ‘val3’ }, { nest1: ‘val1’, nest2: ‘val2’, nest3: ‘val3’ } ] } }, […]

从数组中挑选2个随机元素

从数组中选择2个唯一随机元素的最有效方法是什么(即,确保未选择相同的元素两次)。 我到目前为止: var elem1; var elem2; elem1 = elemList[Math.ceil(Math.random() * elemList.length)]; do { elem2 = elemList[Math.ceil(Math.random() * elemList.length)]; } while(elem1 == elem2) 但这通常会导致我的页面加载。 更好的解决方案? 额外的问题,我如何将其扩展到n元素

jquery.extend(true,,obj)没有创建深层副本

jsFiddle在这里 。 如果深度复制工作,输出将是“好奇的乔治”而不是“安德的游戏”。 我该如何制作深层照片? 这个问题的答案表明$.extend(true, [], obj)创建了一个深层副本。 然而我的例子表明它没有。 function Person(){} Person.prototype.favorite_books = []; var george = new Person(); george.favorite_books = [“Curious George”]; var kate = new Person(); kate.favorite_books = [“The Da Vinci Code”, “Harry Potter”]; var people = [kate, george]; var people_copy = $.extend(true, [], people); people_copy[0].favorite_books[0] = “Ender’s Game”; $(‘#text’).text(people[0].favorite_books[0]); 解 我更新了jsFiddle。 事实certificate, 如果对象是自定义对象 […]

jQuery闭包,循环和事件

我有一个类似于这里的问题: Javascript循环中的事件处理程序 – 需要一个闭包吗? 但是我正在使用jQuery,并且给出的解决方案似乎在绑定而不是点击时触发事件。 这是我的代码: for(var i in DisplayGlobals.Indicators) { var div = d.createElement(“div”); div.style.width = “100%”; td.appendChild(div); for(var j = 0;j 0) { var img = d.createElement(“img”); jQuery(img).attr({ src : DisplayGlobals.Indicators[i][j], alt : i, className: “IndicatorImage” }).click( function(indGroup,indValue){ jQuery(“.IndicatorImage”).removeClass(“active”); _this.Indicator.TrueImage = DisplayGlobals.Indicators[indGroup][indValue]; _this.Indicator.FalseImage = DisplayGlobals.IndicatorsSpecial[“BlankSmall”]; jQuery(this).addClass(“active”); }(i,j) ); div.appendChild(img); } } } 我尝试了几种不同的方法但没有成功…… […]

影响Iframe的$(window).blur事件

我想检测用户何时离开我的页面(例如打开一个新标签),这样我就可以停止倒计时了。 我用它做了: $(window).blur(function() { //stop countdown }); 但是我的页面中有一个Iframe,当用户点击它时,倒计时也会停止,但我不希望当有人点击Iframe时执行上述事件。 任何的想法? 更新,我正在尝试更多,基于iframe上的这个答案点击事件? : iframeDoc = $(‘iframe’).contents().get(0); $(iframeDoc).click(function(){ //maybe remove blur event? }); 更新:Tim B解决方案有效: $(window).blur(function () { // check focus if ($(‘iframe’).is(‘:focus’)) { // dont stop countdown } else { // stop countdown } }); 现在我必须在每次调用模糊事件时从Iframe中移除焦点,否则如果用户在关注Iframe后更改制表符,倒计时将不会停止。 我尝试使用上述条件: if ($(‘iframe’).is(‘:focus’)) { // dont stop countdown $(“iframe”).blur() $(window).focus(); } […]