将.attr()与.get()一起使用问题
Using .attr() with .get() Issues
我正试图通过使用遍历div
容器中的每个段落元素来将对象数组存储在数组中。CCD_ 2方法。我尝试使用访问属性。attr()
,但它似乎不起作用。如何修改此代码以便能够访问每条消息的"id"属性?
var messages = $("#message_container p").get();
var idstest = [];
for (int i = 0; i < messages.length; i++){
idstest.push(messages[i].attr("id"));
}
我认为这与一些根本的不兼容有关。CCD_ 4和。attr()
。当我"提醒"由提供的对象时。get()
我得到了[object HTML---]
。我认为这不是使用所必需的形式。attr
?
get
将为您提供DOM元素。这些不是jquery对象,因此不能在它们上使用attr
。这里根本没有理由使用get
。
var messages = $("#message_container p");
var idstest = [];
messages.each(function(){
idstest.push($(this).attr("id"));
});
http://jsfiddle.net/ujdeH/
编辑:您也不能使用int
。
如果出于某种原因,您确实想使用get
来获取原始DOM元素,那么您只需要使用.id
:
http://jsfiddle.net/ujdeH/1/
var messages = $("#message_container p").get();
var idstest = [];
for (var i = 0; i < messages.length; i++) {
idstest.push(messages[i].id);
}
改为尝试:
var idstest = [];
$("#message_container p").each(function(i){
idstest.push($(this).attr("id"));
});
只想添加$.map
快捷方式:http://jsfiddle.net/UuWq3/.
var idstest = $.map(messages, function(elem) {
return $(elem).attr("id");
});
$.map
返回基于原始数组(或jQuery对象(的新数组。返回的数组是用您传递的函数构造的(在这种情况下,messages
由函数转换,这样每个元素都会被其ID替换(。
您应该将对象包装在jQuery容器中:
$(messages[i]).attr("id")
实际上这里不需要jQuery,这种纯JavaScript在所有浏览器上都可以正常工作:
var idstest = [];
var container = document.getElementById("message_container");
if (container) {
var messages = container.getElementsByTagName("p");
for (var i = 0; i < messages.length; i++) {
idstest.push(messages[i].id);
}
}
jQuery很好,功能强大,但如果你能用足够短/足够简单的纯JS完成同样的任务,那为什么不呢?
也就是说,如果你所有现有的代码都是jQuery,那么为了一致性和可读性,你最好坚持使用它(在这里使用其他正确答案中的代码(。
相关文章:
- 通过jQueryAjax一起发布Array和Form数据时出现问题
- 使用php解析xml并将其转换为json以与$.ajax一起使用时遇到问题
- 将clientWidth/clientHeight Javascript与webgl一起使用会返回问题
- 使用 :after 选择器与 slideToggle() 一起显示图标的问题
- 将 .show/.hide 与 .next 一起使用会导致问题
- 将“按$index跟踪”与过滤器一起使用时,出现错误.如何解决这个问题
- 将javascript与XML和XSLT一起使用时出现问题
- 关于“AngularJS与Plupload一起工作”的一些问题
- css的问题很重要,当与两个类一起使用时
- Highstock和Highmaps一起引发问题
- 尝试将IF语句与数组一起使用时遇到问题
- 将string.replace()Javascript与Unicode符号一起使用时出现问题
- 将javascript和jquery与XSL转换或函数参数混合在一起的问题
- 将.attr()与.get()一起使用问题
- PHP头文件不能与ajax一起工作.用js重新加载的问题
- 剑道图表第二个valueAxis问题,不能与axisCrossingValue一起工作
- 将elem.dataset与IE和JSFiddle一起使用时出现问题
- 将this.constructor与构造函数调用一起使用以访问静态属性时是否存在兼容性问题
- 奇怪的phpMyAdmin问题:内联编辑刚刚停止与下拉选择一起工作
- 让 CORS 与 JQuery 客户端、节点/快速服务器一起工作时出现问题