2015-07-20 79 views
0

我有下面的html,用JS生成。用jQuery获取属性的值

<div lang="en" id="s7_videoview_playPauseButton" class="s7playpausebutton" data-description="Scene7ComponentHolder" data-component="PlayPauseButton" state="up" selected="true"></div> 

我要抢所选属性的值时,该按钮被点击时,我使用这个代码:

$(document).on('click ', '.s7playpausebutton', function(e) { 
    e.preventDefault(); 
    console.log($(this).attr('selected')) 
    $(this).val($(this).attr("selected")); 
}); 

,但它总是给我回来“选择”,而不是实际的价值即。对或错。哪里不对?

+3

“选定”或“状态”都不是“div”元素的有效属性。将它们同时更改为'data'属性。 –

+1

使用'data- *'属性....还有'$(this).text($(this).attr(“selected”));' –

+0

问题是第三方代码,这就是添加的属性。 – user1937021

回答

1

首先,请注意,所选属性传统上对于<option>元素而不是<div>元素是唯一的。这会导致jquery的$().attr()方法出现问题。然而,良好的旧JavaScript工作如预期。 与

this.getAttribute('selected'); 

更换

$(this).val($(this).attr("selected")); 

应该解决您的问题。

以下是jsfiddle的工作。