1

我只是想知道是否可以得到一些指示。

如果根据是否切换 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.

我想我可能只是很愚蠢,但我无法弄清楚这一点。我已经用谷歌搜索了它,但我似乎无法找到明确的答案。

只是想知道你是否对我可能出错的地方有任何建议。

提前致谢

4

3 回答 3

4

你不应该attr改用吗?

$(this).attr("title", $(this).attr('title') == 'Email Me' ? 'Close Form' : 'Email Me');

代替:

$(this).text($(this).attr('title') == 'Email Me' ? 'Close Form' : 'Email Me'); //This doesn't change the attribute at all.
于 2013-05-28T21:26:26.427 回答
3

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

$(this).attr('title', $(this).attr('title') == 'Email Me' ? 'Close Form' : 'Email Me');

请注意,这title是一个反射属性,因此您可以在不使用 jQuery 的情况下更有效地执行此操作:

this.title = this.title == 'Email Me' ? 'Close Form' : 'Email Me';

但是你必须做成千上万次才能使效率变得重要。


这个condition ? value : otherValue东西被称为“三元”运算符。它通常被称为“三元”运算符,但“三元”仅表示它具有三个操作数(“二元”运算符 [如+in 1 + 1] 有两个,“一元”运算符 [如-in -n] 只有一个),所以从技术上讲它是“a”三元运算符。我只是大多数类 C 语言的唯一一个......

于 2013-05-28T21:26:42.807 回答
0

事实证明,这是我正在运行的插件的问题。我有提示插件来提供精美的工具提示。

一旦我停止将它用于 a 标签上的 title 属性,切换就会完美运行。我现在必须弄清楚它为什么这样做。

感谢你的帮助

于 2013-05-28T23:10:29.680 回答