【发布时间】:2013-08-06 14:59:00
【问题描述】:
HTML:
<a href="/u"><span>Text</span></a>
<a href="/u"><span><strong>Text</strong></span></a>
<a href="/u"><span><strong>Text</strong></span></a>
<a href="/u"><span>Text</span></a>
var strong = $('span strong'),
notstrong= $('span'),
a = $('a[href^="/u"]');
for(var i=0;i<a.length;i++){
var checkIt = strong ? strong : notstrong;
$(a[i]).find(checkIt).before('<span>Hello</span>');
}
结果应该是:
<a href="/u"><span><span>Hello</span>Text</span></a>
<a href="/u"><span><span>Hello</span><strong>Text</strong></span></a>
<a href="/u"><span><span>Hello</span><strong>Text</strong></span></a>
<a href="/u"><span><span>Hello</span>Text</span></a>
实际结果:
<a href="/u"><span>Text</span></a>
<a href="/u"><span><span>Hello</span><strong>Text</strong></span></a>
<a href="/u"><span><span>Hello</span><strong>Text</strong></span></a>
<a href="/u"><span>Text</span></a>
由于某种原因,条件运算符没有返回我的错误语句。那或者编码是错误的,就像我之前使用了错误的选择器一样。真的吗?我很好奇为什么我的条件运算符不正确。我是条件运算符的新手,所以也许它总是返回 true 或者我不确定。
【问题讨论】:
-
这不总是被评估为真的吗?您的运营商不区分线路。它只是在任何地方检查是否存在强,但是当你这样做时,它总是在寻找强。
-
notstrong包含 所有<span>元素,包括 那些包含<strong>标记的元素。另外,checkIt将永远是strong...这是你想要的吗? -
您是否要在所有
<a><span>元素文本之前添加<span>Hello</span>,而不考虑<strong>?好像是这样……
标签: javascript jquery for-loop conditional conditional-operator