我有一对无线电,我在页面.ready事件上使用bind()为其分配一个函数.然后,在同一个ready事件中,我检查另一个输入的值,如果它的值是"1",我会在页面加载时预选第二个单选按钮.这是一个片段.
<input type="radio" name="fpago" id="fpago1" value="1" />one
<input type="radio" name="fpago" id="fpago2" value="2" />two
Run Code Online (Sandbox Code Playgroud)
...
$(document).ready(function() {
$("#myspan").hide();
$("#fpago1, #fpago2").bind('change click',function(){
togglePlazo();
});
//initial condition to preselect radio #2
grupo = $("#id_grupo").val();
if(grupo != '0'){
$("#fpago2").attr('checked', true); //checks the radio, but doesn't trigger function
}
});
Run Code Online (Sandbox Code Playgroud)
...
- > 在这里查看更完整的代码
问题是,如果满足条件,则检查无线电,但绑定功能togglePlazo()不会触发......
如果稍后我手动单击单选按钮,则会触发该功能,并且跨度切换.它仅在使用jQuery进行的初始"检查"时,尽管无线电发生了变化,但该功能仍未触发.
我不知道我错过了什么,也许我应该绑定除了更改或点击之外的更多事件......我只是找不到我做错了什么.
注意:我使用的是jQuery 1.4.2,但小提琴设置为使用1.6.4(它没有1.4.2作为选项)
我有数以百计的字符串的出现的源文件flecha.jpg和flecha1.jpg,但我需要找到其他的事件.jpg图像(即casa.jpg,moto.jpg,等等)
我试过使用带有负向lookbehind的正则表达式,如下所示:
(?<!flecha|flecha1).jpg
Run Code Online (Sandbox Code Playgroud)
但它不起作用!Notepad ++只是说它是一个无效的正则表达式.
我在其他地方尝试了正则表达式并且它有效,这是一个例子,所以我猜这是NPP处理正则表达式或者lookbehinds/lookaheads语法的问题.
那么我如何才能在NPP中获得相同的正则表达式结果呢?
如果有用,我使用Notepad ++版本6.3 Unicode
另外,如果你很善良,那么实现同样的东西的语法是什么,但可选的数字(在这种情况下只有'1')作为我的字符串的后缀?(即使它在NPP中不起作用,只是为了知道)......
我试过(?<!flecha[1]?).jpg但它不起作用.它应该与其他正则表达式相同,请参见此处(RegExr)
在我使用的大多数语言中,你根本无法嵌套块注释,因为"关闭"注释sintaxis的第一个发生关闭了注释,即使它只是一个"内部"注释.
例如,在HTML中
<!-- outer comment
<p>hello</p><!-- inner comment <p>world</p> -->
<p>this should BE commented</p>
-->
Run Code Online (Sandbox Code Playgroud)
在这种情况下,外部注释结束于第一个-->而不是相应的最后一个,导致最后一个<p>打印,而不应该打印.
对于/* */用于块注释的语言也是如此,例如java,php,css,javascript等.
但我的问题是为什么会这样?为什么在设计上不允许这样做?我提到"按设计",因为我真的怀疑是因为解析问题,我猜解析器完全有能力跟踪开放/*s并用相应的结束关闭*/评论但是他们只是某种程度上决定它不是一个好主意.
我已经知道,解决方法是以某种方式更改内部结束注释,以避免它们关闭,并且只留下最后一个结束注释.例如,改变-->s和*/s的内部- ->和* /s.但这显然不方便,当您只想丢弃代码块以进行调试时很难做到.(其他技术是将所有内容嵌套在if(false){}块中,但这不是重点.
那么,我想知道的是为什么几种现代语言通常不允许嵌套注释?必须有一个很好的理由,除了"别人不做,我们也不会"对吧?
另外,是否还有其他(不那么模糊)的语言允许嵌套块注释?
我正在做一些MySQL测试查询,并意识到将字符串列与0(作为数字)进行比较给出了TRUE!
select 'string' = 0 as res; -- res = 1 (true), UNexpected! why!??!?!
Run Code Online (Sandbox Code Playgroud)
但是,将它与任何其他数字进行比较,正数或负数,整数或小数,false按预期给出(当然除非字符串是数字表示为字符串)
select 'string' = -12 as res; -- res = 0 (false), expected
select 'string' = 3131.7 as res; -- res = 0 (false), expected
select '-12' = -12 as res; -- res = 1 (true), expected
Run Code Online (Sandbox Code Playgroud)
当然,将字符串与'0'字符串进行比较,如预期的那样给出false.
select 'string' = '0' as res; -- res = 0 (false), expected
Run Code Online (Sandbox Code Playgroud)
但为什么它会成真'string' = 0呢?
这是为什么?
有什么区别
<a onclick="someFunction">
和
<a onclick="someFunction()">
一个使用括号而不是另一个,但使用两者的区别是什么?什么是"正确"的选择?如果我不使用任何href属性会发生什么?
据我所知,在javascript中,using something = someFunc();将该函数的返回值赋给something变量.并且使用something = someFunc;直接将函数(而不是其结果)分配给该变量(并且它主要用于将函数分配给事件).例如,我可以为onclick事件分配一个函数.
但是我不明白在一些html元素内联事件中使用时会发生什么,如示例中所示,因为赋值不是javascript变量,而是html属性,这恰好是一个事件?请解释.
而且,将内联onclick函数分配给锚(a)以及其他元素(例如span div label等)是否有区别?他们有同样的效果吗?
旁注:我一直在这里阅读关于如何在点击链接时运行一个函数,我已经明白是不应该"内联",而是使用不引人注目的javascript.(我提到它是为了避免对此进行辩论),但在我看到的例子中,他们没有提到我在内联时提到的两个选项的区别.
编辑:这个问题是因为在这里他们给出了一个答案,它没有在事件的函数中使用括号,没有人提到需要括号,所以我认为它是有效的.但我不知道使用()与否有什么区别.
在 MySQL 中,我有一个包含多个列的表,其中一个是日期列。我希望能够进行查询,以便我可以获得一个额外的列,显示当前日期(每行的日期)和前一行的日期之间的天数。
记录的顺序是按日期,我按其他列过滤。
例如
id other_col date days_between_dates
1 abc 2013-05-01 0
2 abc 2013-05-07 6
3 abc 2013-05-09 2
4 abc 2013-05-19 10
5 abc 2013-05-25 6
6 abc 2013-06-03 9
7 abc 2013-06-14 11
Run Code Online (Sandbox Code Playgroud)
显然,由于第一行没有什么可比较的,它应该显示0.
我知道我可以使用datediffMySQL 函数获得两个日期之间的差异,例如
select datediff('2013-06-03','2013-05-25');
Run Code Online (Sandbox Code Playgroud)
我的基本查询是,select * from mytable where other_col = 'something' order by date;
但如何进行查询以直接获得示例中的结果?(我需要额外的“ days_between_dates”列)。
还要注意,通常 id 是有序的,没有间隙,但我不能保证。只是我会按升序日期排序,并按“other_col”列过滤。
我想要一个正则表达式来查找任何给定的字符串,但前提是该字符串不使用单行注释进行注释。
我不介意它是否在多行注释中找到该字符串(因为我认为Regex会复杂得多)。
例如,假设我要“ mystring”(不加引号):
mystring bla bla bla <-- should find this
bla bla mystring bla <-- also this
// bla bla mystring <-- not this , because is already commented
//mystring <-- not this
// alkdfjñas askfjña bla bla mystring <-- not this
wsfier mystring añljkfasñf <--should find this
mystring //a comment <-- should find this
bla bla // asfsdf mystring <-- should SKIP this, because mystring is commented
/*
asdfasf
mystring <-- i dont care if it finds …Run Code Online (Sandbox Code Playgroud) 我想填写一个2d数组,我在javascript中有这个代码:
n=2; //rows
m=3; //columns
z=0;
array1=[];
for(i=0;i<n;i++){
for(j=0;j<m;j++){
array1[i]=[];
array1[i][j] = z;
console.log(i+","+j+"="+z); //debug
z++;
}
}
console.log(array1);
Run Code Online (Sandbox Code Playgroud)
但不是得到这个预期的结果;
[[0, 1, 2], [3, 4, 5]]
Run Code Online (Sandbox Code Playgroud)
我明白了:
[[undefined, undefined, 2], [undefined, undefined, 5]]
Run Code Online (Sandbox Code Playgroud)
为什么!?我不明白为什么我对每个"内部"数组中的所有项目都没有定义,除了最后一个正确的(这里是2和5).
我做了一个调试步骤,记录每一i,j对和指定的z值,我每次都得到正确的配对值(i,j=z):
0,0=0
0,1=1
0,2=2
1,0=3
1,1=4
1,2=5
Run Code Online (Sandbox Code Playgroud)
所以,我认为我arr[i][j]=z每次都正确填充数组,那么为什么这些情况会得到未定义的呢?我也尝试在两种情况下使用arr=new Array()而不是arr=[]语法,但结果相同.
有任何想法吗?我几乎肯定这将是一个微不足道的错误,但我找不到有什么问题!
谢谢.