2015-07-21 197 views
3

如何在作爲對象給定的某些HTML代碼中更改標記的屬性?將屬性添加到對象

目前,如果我做的:

console.log(gallery.currItem); 

我得到:

所以我當時做的事:

console.log(gallery.currItem.html); 

我也得到控制檯的HTML(不作爲一個對象,我相信它就像texy一樣):

<video width="500" height="250" controls><source src="" type=""></video> 

但我不知道如何通過添加屬性muted="muted"來編輯video標記。

我想:

console.log($(gallery.currItem.html).find('video')); 

但這又返回的對象。 :/

+2

如何gallery.currItem初始化/設置? – depperm

+0

即使它看起來像控制檯中的文本,它也是實際的元素。 –

+0

@塞巴斯蒂安:不,它不是。看截圖。 –

回答

0

試試這個。

$(gallery.currItem.html).attr("muted", "muted"); 
+0

這可能會從HTML中產生一個新元素,並根據需要對其進行更改,但不會將其分配回庫中。 – Jacob

+0

沒有工作。 :( – user5140488

+0

@Jacob:是的,你說得對 – jrath

1

我假設你使用的是PhotoSwipe。 gallery.currItem.html不是一個字符串,而是一個實際的html元素。 您只需直接編輯它的屬性:

gallery.currItem.html.setAttribute("muted", "muted"); 

,以確保它是一個實際的元素,如果有問題,這樣做:

if(gallery.currItem.html.tagname) { 
    gallery.currItem.html.setAttribute("muted", "muted"); 
} else { 
    // append it to the dom or wrap it into jquery and then set the attributes 
    gallery.currItem.html = $(gallery.currItem.html).attr("muted", "muted")[0]; 
} 
+0

TypeError:gallery.currItem.html.setAttribute不是函數 – user5140488

+0

好吧,然後你必須包裝它在jquery中。這將是相同的其他答案已經建議你可以用jquery對象覆蓋html屬性。 –

0

答:

$(gallery.currItem.container.lastChild).attr('muted', 'muted');