用jquery更改调用javascript函数变量?

时间:2011-11-09 18:38:20

标签: javascript jquery ajax

有一个像这样的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做到这一点?

3 个答案:

答案 0 :(得分:2)

使用jQuery执行此操作的方法是将所有Javascript代码移动到HTML中的单独文件或script块中。任何从行为(Javascript)

抽象显示(HTML + CSS)的方法

这需要对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);
});