Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用速记更改属性时出现问题_Jquery_Shorthand If - Fatal编程技术网

Jquery 使用速记更改属性时出现问题

Jquery 使用速记更改属性时出现问题,jquery,shorthand-if,Jquery,Shorthand If,我只是想知道能不能给我一些指点 我使用的是一个速记if来根据div是否被切换来更改文本 这是我为文本转换器准备的: $(this).text($(this).text() == 'Email Me' ? 'Close Form' : 'Email Me'); 我想沿着这些线来更改锚的标题属性。我已尝试使用以下方法: $(this).text($(this).attr('title', == 'Email Me' ? 'Close Form' : 'Email Me')); //This thr

我只是想知道能不能给我一些指点

我使用的是一个速记if来根据div是否被切换来更改文本

这是我为文本转换器准备的:

$(this).text($(this).text() == 'Email Me' ? 'Close Form' : 'Email Me');
我想沿着这些线来更改锚的标题属性。我已尝试使用以下方法:

$(this).text($(this).attr('title', == 'Email Me' ? 'Close Form' : 'Email Me')); //This throws up syntax errors in firebug because of where the == is placed
我也尝试过以下方法:

$(this).text($(this).attr('title') == 'Email Me' ? 'Close Form' : 'Email Me'); //This doesn't change the attribute at all.
我想我可能是真的很傻,但我无法理解这一点。我用谷歌搜索了一下,似乎找不到确切的答案

我只是想知道你是否有任何关于我可能出错的建议

提前感谢

您不应该改用attr吗

而不是:

$(this).text($(this).attr('title') == 'Email Me' ? 'Close Form' : 'Email Me'); //This doesn't change the attribute at all.
你不应该使用attr吗

而不是:

$(this).text($(this).attr('title') == 'Email Me' ? 'Close Form' : 'Email Me'); //This doesn't change the attribute at all.

如果要更改属性,请更改属性,而不是文本:

$(this).attr('title', $(this).attr('title') == 'Email Me' ? 'Close Form' : 'Email Me');
请注意,title是一个反射属性,因此您可以在不使用jQuery的情况下更高效地执行此操作:

this.title = this.title == 'Email Me' ? 'Close Form' : 'Email Me';
但是你必须要做成千上万次,才能让效率发挥作用


情况如何?值:其他值的东西称为三元运算符。它经常被称为三元运算符,但三元只是意味着它有三个操作数一个二元运算符[如1+1中的+1]有两个,一元运算符[如-in-n]只有一个,所以从技术上讲它是三元运算符。我只是大多数C语言中唯一的一个…

如果要更改属性,请更改属性,而不是文本:

$(this).attr('title', $(this).attr('title') == 'Email Me' ? 'Close Form' : 'Email Me');
请注意,title是一个反射属性,因此您可以在不使用jQuery的情况下更高效地执行此操作:

this.title = this.title == 'Email Me' ? 'Close Form' : 'Email Me';
但是你必须要做成千上万次,才能让效率发挥作用


情况如何?值:其他值的东西称为三元运算符。它经常被称为三元运算符,但三元只是意味着它有三个操作数一个二元运算符[如1+1中的+1]有两个,一元运算符[如-in-n]只有一个,所以从技术上讲它是三元运算符。我只是大多数C语言中唯一的一个…

事实证明,这是我运行的插件的问题。我有一个酒鬼插件,可以提供奇特的工具提示

一旦我停止在a标记的title属性中使用它,切换就可以完美地工作。我现在必须弄清楚它为什么要这么做


感谢您的帮助

原来这是我运行的插件的问题。我有一个酒鬼插件,可以提供奇特的工具提示

一旦我停止在a标记的title属性中使用它,切换就可以完美地工作。我现在必须弄清楚它为什么要这么做


谢谢你的帮助

我两种方法都试过了,似乎都不管用。title中的后一个似乎破坏了jquery,函数的其余部分没有运行。我试过前者,但没有改变,使用firebug也没有任何改变。我一定是错过了什么silly@Chris:奇怪。适用于我:来源:和来源:。当然,您必须确保这是指您想要更改的div,就像在jQuery事件处理程序中一样。@Chris,发布您的全部代码,或者创建一个fiddle,这将更容易帮助您,因为这个解决方案应该可以工作。您好,这是fiddle[link],它在fiddle中工作得很好。我试图在我的页面上使用它,但它不起作用。只有在标题attr中有一个单词时,它才会起作用。我摸不透it@Chris:恕我直言,小提琴演奏没有多大意义我唯一想到的是,你所比较的标题中的文本与你所比较的内容并不完全相同。例如,你有一个制表符而不是空格吗?我试过这两种方法,但都不起作用。title中的后一个似乎破坏了jquery,函数的其余部分没有运行。我试过前者,但没有改变,使用firebug也没有任何改变。我一定是错过了什么silly@Chris:奇怪。适用于我:来源:和来源:。当然,您必须确保这是指您想要更改的div,就像在jQuery事件处理程序中一样。@Chris,发布您的全部代码,或者创建一个fiddle,这将更容易帮助您,因为这个解决方案应该可以工作。您好,这是fiddle[link],它在fiddle中工作得很好。我试图在我的页面上使用它,但它不起作用。只有在标题attr中有一个单词时,它才会起作用。我摸不透it@Chris:恕我直言,小提琴演奏没有多大意义我唯一想到的是,你所比较的标题中的文本与你所比较的内容并不完全相同。例如,你有一个制表符而不是空格吗?我用attr试过了,但它似乎不起作用。当我第一次尝试它的时候,我想这只是一个改变环境的例子
向attr发送文本,但它不想玩球。我没有在firebug中得到任何错误,尽管我用attr尝试过,但它似乎不想工作。当我第一次尝试它时,我认为它只是将文本更改为attr,但它不想玩球。我没有在firebug中得到任何错误,只是想知道是否有其他人能够检查这个问题并找到了解决方案。下面对话中的问题是,三元运算符默认为false——尽管它在js小提琴中工作得很好。我用一个冗长的if-else语句尝试了它,但它仍然默认为false。我试着在a的属性和作为比较的属性中都只放了123,但没有运气。我只是想知道是否有其他人能够检查这一点,并找到了解决方案。下面对话中的问题是,三元运算符默认为false——尽管它在js小提琴中工作得很好。我用一个冗长的if-else语句尝试了它,但它仍然默认为false。我试着在a的属性和比较中都只放了123,但一点运气都没有