Javascript 如何使用jQuery获取div onclick属性中的字符串?

Javascript 如何使用jQuery获取div onclick属性中的字符串?,javascript,jquery,html,attr,Javascript,Jquery,Html,Attr,我有一个横幅是这样的: <ul id="carousel"> <li id="item1"> <div onclick="window.open('mylinkhere.com,'_blank')" style="cursor:pointer;margin-left:-436px;width:996px;height:100%"> </div> </li> <li id="item2"&

我有一个横幅是这样的:

<ul id="carousel">
   <li id="item1">
      <div onclick="window.open('mylinkhere.com,'_blank')" style="cursor:pointer;margin-left:-436px;width:996px;height:100%">
      </div>
   </li> 
   <li id="item2">
      <div onclick="window.open('myotherlinkhere.com,'_blank')" style="cursor:pointer;margin-left:-436px;width:996px;height:100%">
      </div>
   </li> 
</ul>
<ul id="carousel">
   <li id="item1">
      <div data-url="mylinkhere.com" onclick="window.open($(this).data('url'),'_blank')" style="cursor:pointer;margin-left:-436px;width:996px;height:100%">
      </div>
   </li> 
   <li id="item2">
      <div data-url="myotherlinkhere.com" onclick="window.open($(this).data('url'),'_blank')" style="cursor:pointer;margin-left:-436px;width:996px;height:100%">
      </div>
   </li> 
</ul>
但我不能。顺便说一句,我从一开始就不知道哪个项目会在旋转木马中,因为它是由另一个函数随机化的。因此,我无法使用item1 item2 ect访问它们


谢谢。

您可以在数据属性中设置url,并像这样轻松阅读:

<ul id="carousel">
   <li id="item1">
      <div onclick="window.open('mylinkhere.com,'_blank')" style="cursor:pointer;margin-left:-436px;width:996px;height:100%">
      </div>
   </li> 
   <li id="item2">
      <div onclick="window.open('myotherlinkhere.com,'_blank')" style="cursor:pointer;margin-left:-436px;width:996px;height:100%">
      </div>
   </li> 
</ul>
<ul id="carousel">
   <li id="item1">
      <div data-url="mylinkhere.com" onclick="window.open($(this).data('url'),'_blank')" style="cursor:pointer;margin-left:-436px;width:996px;height:100%">
      </div>
   </li> 
   <li id="item2">
      <div data-url="myotherlinkhere.com" onclick="window.open($(this).data('url'),'_blank')" style="cursor:pointer;margin-left:-436px;width:996px;height:100%">
      </div>
   </li> 
</ul>
看这把小提琴:

对我来说,以下代码按预期工作(Chrome 44,jQuery 2.1.3):


可能的问题是,在您的代码中,您没有将元素包装成$(…),因此.attr()不是有效的函数,因为在jQuery对象上使用索引器会返回原始HTML元素。

而不是在div上使用
onclick
,您可以使用
将其包装,并获得
href
属性。
var s = jQuery('#carousel li div');
s.each(function(i,node) {
    alert(jQuery(node).attr('onclick'));
});