2011-05-27 58 views
1

我有一个这样的字符串:问题与获得元素的属性值.attr()方法

string_data = "<option value='1'>ahmad</option><option value='2'>mohammad</option><option value='3'>ali</option>" 

现在我想获得的期权价值属性的值,并提醒它。为了这个,我写这篇文章:

$(string_data).contents() 
.each(function(){ 
    value = $(this).attr('value'); 
    text = $(this).text(); 
    alert(value); 
}); 

但是这个代码回报未定义为他们所有。
另外string_data是一个字符串,我从一个PHP脚本通过$ .post()jQuery方法通过Ajax获取它。
我正在使用jquery 1.6。

回答

3

contents()方法检索孩子的元素而你的情况是文本节点的。省略方法调用通过<option>元素迭代:

$(string_data).each(function(){ 
    value = $(this).attr('value'); 
    text = $(this).text(); 
    alert(value); 
}); 
+0

是的。这是正确的方式。我的问题解决了。所有的感谢! – 2011-05-27 08:23:00

+0

在这种情况下,习惯上将回答标记为已接受:) – Xion 2011-05-27 09:15:28

0

尝试:

 
$(string_data).find("option") 
.each(function(){ 
    value = $(this).attr('value'); 
    text = $(this).text(); 
    alert(value); 
}); 
0

我不知道它是有效的加载这样的string_data,当jQuery的希望的标识符。它应该更像是:

$('#some_hidden_select').html(string_data).find("option") 
.each(function(){ 
    value = $(this).attr('value'); 
    text = $(this).text(); 
    alert(value); 
});