的getElementById在有序列表
我有这样的HTML:的getElementById在有序列表
<ul class="ei-slider-arrows">
<li id="arrowLeft" ><img src='images/close.png'/></li>
<li id="arrowRight" ><img src='images/close.png'/></li>
</ul>
我想对我的两个立“箭头”添加点击功能,但我不能选择它们。我尝试这样做:
this.$arrows = this.$el.find('ul.ei-slider-arrows');
this.$arrowLR = this.$arrows.children('li');
this.$arrowRight = this.$arrowLR.getElementById("arrowRight");
我可以this.$arrowLR
增加一个功能,但我不能设法选择arrowRight
。 在这里我尝试了getElementById
,但我也尝试过get(0)
和get(1)
。
任何人都有一个想法,为什么它不工作?
如果我做console.log(this.$arrowRight)
它只在控制台中显示[]
(get()
和getElementById("arrowRight")
)。
我会去:
$("#leftArrow").click(hazaa());
$("#rightArrow").click(hazaa());
function hazaa(){ }
而且你还可以传递参数,如果你想要做的略有不同的东西,这取决于箭头点击。
$("#leftArrow").click(hazaa("left"));
$("#rightArrow").click(hazaa("right"));
function hazaa(direction){ alert(direction); }
Thx为你的快速回答,原因是我想选择li命名id =“arrowRight”添加一个特定的功能(相同的后为id =“arrowLeft”)通过做你所显示的,如果我点击任何箭头,它会做同样的功能(我需要左右的幻灯片放映) – 2012-07-30 16:36:29
查看更新。如果你喜欢它,请检查绿色! – 2012-07-30 16:43:28
如果你想获得他们都是由ID,然后用这个片段:
var arrowsBoth = $('#arrowLeft, #arrowRight');
或者,如果你想分别访问他们:
var arrowLeft = $('#arrowLeft');
var arrowRight = $('#arrowLeft');
你也可以让他们像这(也可能返回比期望更多的元素):
var arrows = $('ul.ei-slider-arrows li');
只要选择由ID的元素和使用jQuery
$('#arrowLeft').click(function(){
})
$('#arrowRight').click(function(){
})
$("#arrowRight")
和jQuery的$("#arrowLeft")
应该让你左,右箭头事件处理程序绑定到它
。然后您可以使用on()
,delegate()
或click()
来分配处理程序。您也可以仅执行document.getElementById("arrowLeft")
或document.getElementById("arrowRight")
来执行相同的选择。你上面的问题之一是在this.$arrowLR.getElementById("arrowRight");
你试图在包含dom元素列表的jquery对象上使用javascript函数。
问题是我有这个代码的多个实例,我有几个不同的幻灯片。如果我通过使用'document.getElementById(“arrowRight”)来添加这个函数,那么每当我点击时,该函数将会被触发几次以用于所有的幻灯片演示! – 2012-07-30 16:52:30
@CharlieBurger你真的不应该有多个相同的ID;那是不合法的标记;编号应该是唯一的。非唯一的ID可能会导致各种浏览器无法行为。如果你有多个元素,应该用类名来命名。如果使用$(“#arrowRight”)。click()该函数只应触发触发处理程序的元素,而不是所有类似的id元素。 – scrappedcola 2012-07-30 17:01:34
是的,我不知道我是怎么忘记的。我来自as3,我认为这是不同的对象编译,而不是HTML中的标签列表! 我想我找到了一个解决方案: 'this。$ arrowRight = this。$ arrows.find('li.arrowRight img');'我发现比使用$(“something”)更清洁; 这不是完美的工作,但我到了那里! Thx – 2012-07-30 17:19:35
请张贴更多的HTML和JS - 这很难从你发布给我们帮助的一点点。 – Utkanos 2012-07-30 16:33:20
所以我用这个工作完美'这个。$ arrowRight = this. $ arrows.find('li.arrowRight img');' – 2012-07-30 17:20:09