jQuery有一个可爱的方法,虽然名字有点错误,叫做closest()遍历DOM树寻找匹配的元素。例如,如果我有这个HTML:Yay假设element设置为,然后我可以算出src的值像这样:element.closest('table')['src']如果缺少table元素或其src属性,它将干净地返回“undefined”。在Javascriptland中已经习惯了这一点,我很想在Rubyland中找到与Nokogiri等效的东西,但我能想到的最接近的是使用ancestors()的明显不雅的hack。:ancestors=element.ancestors('table')src=a
假设我有以下字符串:"BENffew123X\r\nBENx432f456X\r\nBEN!233789X\r\nBEN4545789X"我想要一个能捕获“BEN!233789”的正则表达式,它必须非贪婪地查找“BEN”,后跟任何字符(不包括“BEN”一词)并以789X结尾。我尝试了正则表达式:/BEN.+?789X/mi,我得到了"BENffew123X\r\nBENx432f456X\r\nBEN!233789X"作为匹配项。我知道这个正则表达式寻找第一个“BEN”并捕获字符串的开头,但我希望它寻找最接近第一个“789X”的“BEN”。我怎样才能做到这一点?一个想法是反转字符串,我
我想我想要的很简单,但我找不到正确的解决方案。我在Javascript中有这种数组:[0,38,136,202,261,399]我在单击按钮时得到一个从0到600的生成值。我需要的是在这个数组中找到最近的较低值。例如,如果生成的值为198,我想得到136作为结果。如果生成的值是300,我想要261...如果是589,我想要399等等。到目前为止,我已经尝试过这段代码:vartheArray=[1,3,8,10,13];vargoal=7;varclosest=null;$.each(theArray,function(){if(closest==null||Math.abs(this-
我正在使用GoogleMapsAPIv3和javascript将map添加到网站。我有一个地址列表,并已成功将它们绘制在map上。当用户输入邮政编码时,map会重新以他们的位置为中心,显示离该点最近的标记。现在,我需要创建一个ListView,显示距离他们的邮政编码最近的3或5个位置,并提供行车路线链接。我被困住了……欢迎提出建议。 最佳答案 通常的解决方案是使用google.maps.geometry.sphericallibrarycomputeDistanceBetween(from:LatLng,to:LatLng,radi
我在第一次点击和第二次点击时为选择(添加检查)div制作了简单的功能,它将被删除,我在其他条件下使用了“closest()”。得不到。请帮忙。代码clickhereJS:=varselected=$('.demo-select');selected.click(function(){$(this).toggleClass('selected');if($('.demo-select').hasClass('selected')){//alert(1);$(this).append('check');}else{//alert(2);$('.demo-select').closest('
在遍历某些DOM元素时,我发现无法对它们使用.data或.attr:$('.running').each(index,element)=>console.logelement.closest('[data-id]')让我明白...但是$('.running').each(index,element)=>console.logelement.closest('[data-id]').data('id')抛出UncaughtTypeError:element.closest(...).dataisnotafunction 最佳答案 cl
我有这个jQuery代码:$(this).closest('div:has(.FIND_ME)').find('.FIND_ME').hide();但是类.FIND_ME的元素不会在IE8和9中隐藏。这个问题是Searchforanitemwithacommonancestor的延续HTML:sometextclickheresometextResultHeresometextclickheresometextResultHere 最佳答案 我将变量element设置为this,然后我调用了:element.closest('a')
我有一个格式为MM/DD/YYYY的日期数组。我需要从今天开始找到future的下一个最接近的日期。假设今天是2016年1月22日,那么2016年2月19日将返回。2/3/20157/5/20151/21/20162/19/20167/1/2016我尝试过使用子字符串来分离月、日、年,并尝试根据这些值进行排序,但肯定有更好的方法。 最佳答案 不需要排序算法。您只需迭代一次并找到大于或等于今天的最近日期。伪代码closest=nowanddateJavaScriptconstdates=['2/3/2035','7/5/2035','
这个问题在这里已经有了答案:What'sthedifferencebetween'$(this)'and'this'?(7个答案)关闭6年前。在IE11中,下面的代码显示了以下错误,但它在Chrome中工作Objectdoesn'tsupportpropertyormethod'closest'4:31PM09/07/16assetTable.on("click","td.clickProgress",functiononDataTableRowClicked(event){vartr=this.closest("tr");varassetId=tr.id.replace("asset
我的代码以下面的方式为许多元素(不是所有元素)设置了数据属性。并且,对于一些元素(不是所有元素)数据属性是用下面的方法设置的。$("#ElementID").data("testing","datavalue");现在,问题来了。单击文档上的任何按钮时,我需要找到其设置了数据属性(测试)的父项。如前所述,所有元素都没有数据属性,因此我需要在层次结构中向上遍历,直到找到预期的元素。对于#1方法,$("#buttonID").closest("[data-testing]")作品。但不适用于#2方法。对于#2方法,我需要遍历按钮parents()并验证它是否有.data("testing"