我正在尝试访问动态生成的链接的“onclick”属性:
<div class="IDX-linkVirtualTour">
<p class="detailsLink_p">Virtual Tour</p>
<div class="IDX-detailsSubLink">
<a onclick="window.open('http://www.tourfactory.com/736220', 'VirtualTour', 'width=800, height=600, resizable=1, scrollbars=1, status=0, titlebar=0')" href="javascript:void(0)">Virtual Tour</a>
</div>
</div>
出现在萤火虫中的元素^
我可以通过以下方式访问href属性:
var $sublinkA = $('.IDX-detailsSubLink a');
log(
$sublinkA[0].href +
"\n" +
$sublinkA[0].onclick); // output the value to firebug console
输出到firebug控制台:
http://www.vdbestates.com/ ......(故意缩短)
未定义
任何想法?谢谢!
var $sublinkA = $('.IDX-detailsSubLink a')
指的是多个元素,但并非每个元素的标签都具有onclick属性。我意识到,只有其中一个元素拥有它。我重构了jQuery:
var $virtualLink = $('.IDX-linkVirtualTour .IDX-detailsSubLink > a');
log("onclick: " + $virtualLink.attr('onclick'));
并获取onclick属性的值。 故事的道德,小心尝试访问一组元素的属性,因为它们可能并非都具有所需的属性,因此返回undefined。
干杯!
答案 0 :(得分:1)
如果您只是想尝试访问onclick
属性的值,那么您可以这样做:
$("elementID").attr("onclick");
为了适应你已经拥有的东西,它看起来像这样:
var $sublinkA = $('.IDX-detailsSubLink a');
var onclickAttr = $($sublinkA[0]).attr("onclick");
答案 1 :(得分:0)
考虑到控制台消息中的href
与HTML中的不同,我会说索引[0]
上的元素与您要定位的元素不同。
如果你有.IDX-detailsSubLink a
的多个实例,那么你就是抓住第一个。
如果页面上只有一个,那么它会返回包含内联onclick
内容的函数。
如果您想要实际属性,可以使用getAttribute()
代替。
var $sublinkA = $('.IDX-detailsSubLink a');
log(
$sublinkA[0].href +
"\n" +
$sublinkA[0].getAttribute('onclick'));
但你仍然需要引用正确的元素。