Javascript Jquery按钮数组
我正在编写一段代码,它将显示所有jquery按钮的按钮标签,这些按钮具有class=“Short” 我正在使用以下代码:-Javascript Jquery按钮数组,javascript,jquery,jquery-ui,typeerror,Javascript,Jquery,Jquery Ui,Typeerror,我正在编写一段代码,它将显示所有jquery按钮的按钮标签,这些按钮具有class=“Short” 我正在使用以下代码:- $('.Short').button(); var all_short_btns = $(".Short"); for(i=0; i< all_short_btns.length; i++){ alert(all_short_btns[i].button( "option", "label" )); } $('.Short').button(); var al
$('.Short').button();
var all_short_btns = $(".Short");
for(i=0; i< all_short_btns.length; i++){
alert(all_short_btns[i].button( "option", "label" ));
}
$('.Short').button();
var all_short_BTN=$(“.short”);
对于(i=0;i
Html是:
<button class="Short">Label1</button>
<button class="Short">Label2</button>
<button class="Short">Label3</button>
<button class="Short">Label4</button>
<button class="Short">Label5</button>
<button class="Short">Label6</button>
Label1
标签2
标签3
标签4
标签5
标签6
我得到一个错误:
未捕获的TypeError:对象#没有方法“按钮”
我的问题是如何获得每个按钮元素的标签
提前感谢。您使用了错误的方法,请使用
.eq(i)
获取特定项目,然后通过调用.html()
获取文本
更新
由于OP使用的是jQuery UI.html()
将打印出自动生成的
,并包装内容。出现此错误是因为您使用的是[i]
,当我们需要jQuery对象时,它会获取原始JavaScript对象.eq()
获取该索引处的jQuery对象
这可能会帮助您:
$(".short").each(function(){
alert($(this).text());
})
$(".short").each(function(){
alert($(this).html());
})
可以使用
innerText
属性设置或检索对象的开始标记和结束标记之间的文本
所以试试这个
var all_short_btns = $(".Short");
for(i=0; i< all_short_btns.length; i++){
alert(all_short_btns[i].innerText);
}
谢谢大家,我发现这也很有效:-
alert(all_short_btns.eq(i).button( "option", "label" ));
OP使用jQueryUI。当然,如果在jQuery对象上调用,那么使用
.button(“option”、“label”)
是非常好的。请注意,Firefox不支持.innerText
(这里是.textContent
)。谢谢@FelixKling,我已经更新了该选项的答案,OP也使用了jQuery UI。使用.button(“option”、“label”)
非常好。尽管这一点被接受,但我注意到.html
在这里不是一个好的解决方案,因为jQuery向button元素添加了额外的元素。看。是的,我同意,但这里没有人用。按钮(“选项”,“标签”)代替我给出答案。我不能接受我的回答。但这是真的,我从这个答案中知道了.eq(I)的诀窍。所以我打了个勾。我更新了我的答案,说明了原因。仅供参考,尝试使用items.eq(i)
而不是像您那样使用$(items[i])
。后者执行额外的不必要的转换。OP使用jQuery UI。使用。按钮(“选项”、“标签”)
非常好。您的答案是在您确定之前给出的。为什么你不考虑接受它们。@silentboy:其他人都建议使用.text
或.html
而不是.button(“选项”、“标签”)
,所以答案不一样。为什么你认为OP不打算接受其他答案之一?他们还得等上几分钟才能回答。问了10分钟后,我无法接受答案。在那之前我需要等待。当然,我会接受其中一个答案,因为下面给出的答案,我能够找到我的路。@silentboy:只有在这些答案的帮助下,我才能确定我的答案。所以我只想分享一下。10分钟后,我接受了我认为最好的答案。太好了,我认为给予反馈是件好事+1.谢谢你的提问
$(".short").each(function(){
alert($(this).text());
})
$(".short").each(function(){
alert($(this).html());
})
var all_short_btns = $(".Short");
for(i=0; i< all_short_btns.length; i++){
alert(all_short_btns[i].innerText);
}
for(i=0; i< all_short_btns.length; i++){
alert(all_short_btns.eq(i).html());
}
alert(all_short_btns.eq(i).button( "option", "label" ));