使用jQuery检索保存在变量中的HTML元素的属性

时间:2015-09-12 15:50:07

标签: jquery

我使用jQuery之类的

将所有元素保存在变量中
<div id="one"></div>
<div id="two"></div>
<div id="three"></div>

var box = $('div');

现在,我正尝试使用alert/console.log attribute['id'] jQuery div console.log(box[1].attr['id']); 与特定索引位置{ - 1}} -

import urllib2
import json

url2 = 'http://api.openweathermap.org/data/2.5/find?q=london,PK&units=metric'
data = urllib2.urlopen(url2)

# read the contents in and parse the JSON.
jsonData = json.loads(data.read())

# print it out nicely formatted:
print json.dumps(jsonData, sort_keys=True, indent=4, separators=(',', ': '))

但这似乎不起作用。

如何在数组中获取元素的属性,在特定的索引位置实现此目的?

谢谢

4 个答案:

答案 0 :(得分:2)

因为那不是正确的语法。

$('div').eq(1).attr('id')

正是您要找的。

答案 1 :(得分:1)

使用eq(n)函数代替数组[],或者您可以使用box[0].id;

var box = $('div');

//OPTION 1
alert(box.eq(1).attr('id'));

//OPTION 2
alert(box[1].id);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div id="one"></div>
<div id="two"></div>
<div id="three"></div>

答案 2 :(得分:0)

你可以走出jquery上下文并使用vanilla JS :(有人说它效率更高,速度更快?)

console.log($(box)[1].id);

或:

console.log(box[1].id);

或 - '纯'jquery方式:

console.log($(box[1]).attr('id'));

或:

console.log(box.eq(1).attr('id'));

或:

console.log(box.next().attr('id')); //even this works!

可能还有更多方法......啊,选择自由™....

答案 3 :(得分:0)

&#13;
&#13;
var box = $('div');
$("div#result1").html(box[1].getAttribute("id"));
$("div#result2").html($(box[1]).attr("id"));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<div id="one"></div>
<div id="two"></div>
<div id="three"></div>
<div id="result1"></div>
<div id="result2"></div>
&#13;
&#13;
&#13;

请试试这个:

console.log($(box[1]).attr('id'));

console.log(box[1].getAttribute('id'));

框是一个jQuery对象,但是框[1]是一个HTML元素,它有getAttribute()方法,但没有.attr()方法。 $(box [1])将其转回jQuery对象。