如果这个无序列表中的项目没有class或div名称,您将如何使用%this.innerHTML%表示法来提取在基于事件的规则中单击的链接?
< div class="relatedCategories rowBottomSpace" >
< strong class="header black short">Related Categories</strong>
<ul>
<li>
<a href="/link1" rel="link 1">LINK 1</a>
<span>|</span>
</li>
<li>
<a href="/link2" rel="link 2">LINK 2</a>
<span>|</span>
</li>
<li><a href="/link3" rel="link 3">LINK 3</a>
</li>
</div>
解决方案#1:更新您的选择器以使更具体
这就是我在上面的评论中提到的解决方案。假设Condition的元素标记或选择器类似于div.relatedCategories
。如果您将其更改为专门针对其中的链接:div.relatedCategories a
,则这将引用单击的链接。
解决方案2:使用自定义条件和数据元素
比方说,无论出于何种原因,您都希望保留原始的更高级别选择器:div.relatedCategories
。
保持原样,然后规则条件>标准
选择数据>自定义,然后单击"添加条件"。
在自定义代码框中,添加以下内容:
var target = (event.target) ? event.target : event.srcElement;
_satellite.setVar('linkTarget',target);
return true;
这将创建一个名为linkTarget
的数据元素,其中将包含对单击链接的html元素对象引用。因此,您可以使用%linkTarget.innerHTML%
,或者在"自定义代码"框中备份,将linkTarget
设置为target.innerHTML
,然后使用%linkTarget%
进行引用。