我尝试使用data-target
更新现有data-target="#testModal1"
以使用jquery #testModal2
指向.data
模式,但即使在数据属性更改后,它仍然会被链接到#testModal1
//Jquery:
$('#testButton').data('target', '#testModal2')
<!-- HTML: -->
<button id='testButton' data-toggle="modal" data-target="#testModal1">
Test
</button>
<div class="modal fade" id="testModal1" tabindex="-1" role="dialog" aria-hidden="true" style='display:none'>
<div class="modal-dialog">
<div class="modal-content">
Testing Testing 1
</div>
</div>
</div>
<div class="modal fade" id="testModal2" tabindex="-1" role="dialog" aria-hidden="true" style='display:none;'>
<div class="modal-dialog">
<div class="modal-content">
Testing Testing 2
</div>
</div>
</div>
答案 0 :(得分:23)
让我们在jQuery文档中查看.data()
是什么:
.data()
存储与匹配元素关联的任意数据,或者在指定数据存储中返回匹配元素集中第一个元素的值。
.data( key, value )
说明:存储与匹配元素关联的任意数据。
键
输入:
String
命名要设置的数据的字符串。
值
类型:对象
新数据值;它可以是任何Javascript类型,包括数组或对象。
使用$('#testButton').data('target','#testModal2')
您将不修改data-target
属性,但您会将字符串"#testModal2"
存储在"target"
字段中。然后$('#testButton').data('target')
将返回"#testModal2"
。
确实.data('key')
可用于返回data-key
属性值。但您无法使用.data('key', 'newValue'
)设置它。
要设置属性值,最常见且最简单的方法是使用.attr()
方法。
所以,答案很简单:在data
中更改attr
并使用data-target
代替target
:
$('#testButton').attr('data-target','#testModal2');
答案 1 :(得分:0)
就我而言,我的朋友们,这是有效的:
<a href="#" data-toggle="collapse" data-target="#collapse1064"
aria-expanded="true" aria-controls="collapse"
class="cliccable_submenu d-block position-relative
text-dark text-uppercase collapsible-link py-2">Link</a>
$('a[data-target="#collapse1064"]').attr("aria-expanded","true");