有一个像这样的html页面:
<div id="list"><a onclick = "javascript:addplaylist('shv231a','1');" href="javascript:void(0);">+</a></div>
<div id="list"><a onclick = "javascript:addplaylist('jhr2a13','1');" href="javascript:void(0);">+</a></div>
<div id="list"><a onclick = "javascript:addplaylist('thy2b1k','1');" href="javascript:void(0);">+</a></div>
有javascript函数
addplaylist('shv231a','1');
addplaylist('jhr2a13','1');
addplaylist('thy2b1k','1');
当用户点击此按钮时,我想在javascript函数(addplaylist)中使用'2'更改值'1'
<a id="make2" onclick="" href="javascript:void(0);">Change the value 2</a>
我怎么能用jquery做到这一点?
答案 0 :(得分:2)
使用jQuery执行此操作的方法是将所有Javascript代码移动到HTML中的单独文件或script
块中。任何从行为(Javascript)
这需要对HTML进行一些修改。特别是删除重复的id字段,以使id具有唯一性。另外从onclick
处理程序中删除javascript引用。
<div id="list1"><a>+</a></div>
<div id="list2"><a>+</a></div>
<div id="list3"><a>+</a></div>
然后使用jQuery,您可以直接从JavaScript指定这些链接的行为。对于播放列表链接和修改它们以传递'2',
的链接都是如此$(document).ready(function () {
var secondArg = '1';
$('#list1 a').click(function (e) {
addplaylist('shv231a1', secondArg);
e.preventDefault(); // Don't follow link
});
$('#list2 a').click(function (e) {
addplaylist('jhr2a13', secondArg);
e.preventDefault(); // Don't follow link
});
$('#list3 a').click(function (e) {
addplaylist('thy2b1k', secondArg);
e.preventDefault(); // Don't follow link
});
$('#make2').click(function (e) {
secondArg = '2';
e.preventDefault();
});
});
答案 1 :(得分:0)
这是一个可能的解决方案:
<a id="make2" onclick="javascript:changeToTwo();" href="javascript:void(0);">Change the value 2</a>
的Javascript
function changeToTwo() {
$('div#list a').each(function() {
$(this).attr('onclick', $(this).attr('onclick').replace("'1'","'2'"));
});
}
如果我没记错,那么只会选择1个具有相同ID的元素,所以你可能要考虑将它移到类选择器
答案 2 :(得分:0)
1)Ids在页面上应该是唯一的 2)使用一个类来选择 3)将您的功能代码保留在标记之外
HTML:
<div id="1" class="list"><a>+</a></div>
<div id="2" class="list"><a>+</a></div>
<div id="3" class="list"><a>+</a></div>
的javascript:
$('.list').each(function ( index, element) {
addplaylist(element.id);
});