2012-06-21 29 views
0

使用jQuery,如何分割陣列或分配鍵,jQuery的

我有一個數組結果

[<a href=""><img src="image1"></a>,<a href=""><img src="image2"></a>] 

,如果我嘗試做每一個我只得到在數組中的第一個,

我怎麼會分裂這個,所以我可以做

$.each(my_array, function (index, value) { 
    this.parent().attr.('href',this.src);// assign image as href to parent 
}); 

這裏是壞的嘗試

http://jsfiddle.net/ZZVXf/6/

請注意,上面的數組返回到我的imagesLoaded的jQuery插件和我canot直接選擇父母,因爲它是沒有結果的範圍內,ZI必須element.parent去() 任何幫助表示讚賞。日Thnx!

+0

this.parrent()!? *母公司*! – Baz1nga

+0

typo parrent =>父 – coolguy

+0

是thnx固定但仍然相同的問題 – Benn

回答

2

給出下面的HTML:

<a href=""><img src="image1"></a><a href=""><img src="image2"></a>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

而jQuery選擇它只能檢測這些元素,在這種情況下,簡單地說:

var my_array = $('a'); 

你會做:

$.each(my_array, function(i, el) { 
    el.href = $(el).children('img').attr('src'); 
}); 

Example


如果你的選擇是對img標籤:

var my_array = $('img'); 

你會做:

$.each(my_array, function(i, el) { 
    $(el).parent().attr('href', el.src); 
}); 

Example

+0

我不能這樣做,這是回到我身邊,是不是像我要通過標記和獲取值,我可以使用的所有[,] – Benn

+0

是的,你可以,這裏是一個工作的小提琴:http:/ /jsfiddle.net/ZZVXf/7/小心你的語法。 – mVChr

+1

如果'my_array'實際上是一個jQuery對象,比如'$('img')''返回,那麼當你可以說時,你不會使用'$ .each(my_array,function(i,el){})' 'my_array.each(function(i,el){})'。 – nnnnnn

0
var arr = ['<a href=""><img src="image1"></a>','<a href=""><img src="image2"></a>']; 

$.each(arr, function (index, value) { 
    alert(value.replace(/^.*src="(.*)".*$/m, '$1')); 
}); 
+0

thnx綁定,但爲什麼使用正則表達式時,這應該是一個正常的foreach?這裏是小提琴,很奇怪http://jsfiddle.net/ZZVXf/6/ – Benn

+0

@Benn我還沒有推卸你的問題,對不起。我認爲你有一個數組,你想搜索src值並將其放在一些href中。對不起。 –

1

選擇IMG元素。

var $imgs = $("a > img"); 

遍歷選定元素

$imgs.each(function() { 
    $(this).parent().attr('href',this.src);// assign image as href to parent 
}); 

注不存在 '' attr之後,因爲這是一種方法。另外,你需要做$(this),因爲循環中的this是一個dom元素,而不是jquery對象。

+0

+1。我即將發佈完全相同的答案。 – nnnnnn

+0

這正是我們所嘗試的,請參閱小提琴,這是日誌對象#從您的代碼和我的數組沒有方法'父',請注意,我得到這個返回低谷圖像加載jquery插件。 – Benn

+1

@Benn - 這個答案與你的小提琴不是一樣的,這可以解決你的小提琴中的問題,它可以工作:http://jsfiddle.net/ZZVXf/8/ – nnnnnn

0

使用此:

var obj = ['<a href=""><img src="image1"></a>,<a href=""><img src="image2"></a>'] 

jQuery(obj).each(function(key,value){ 
    var imgObj = jQuery(value).find('img') 
     jQuery(imgObj).each(function(key,value){ 
      jQuery(this).parent('a').attr('href',jQuery(this).attr('src')); 
    }); 
});​ 

這裏是DEMO

0

如果你的代碼是:http://jsfiddle.net/ZZVXf/6/那麼你只需要改變爲:

$.each($('img'), function (index, value) { 
    $(this).parent().attr('href', this.src);// assign image as href to parent 
}); 

,因爲你要訪問的jQuery方法你需要用jQuery來包裝它(女巫是DOM引用,而不是jQuery引用)。