Javascript 如何从<;的id中获取两个变量;a>;并创建ajax查询
我的菜单结构如下所示。在Javascript 如何从<;的id中获取两个变量;a>;并创建ajax查询,javascript,jquery,ajax,Javascript,Jquery,Ajax,我的菜单结构如下所示。在id的 //编辑 链接的外观如下所示: <ul id="fotolia_menu"> <li><a href="#">Kategorie</a> <ul> <li><a href="#" data-paramType="cat1" data-param="3000000">Ludzie</a> <ul&
id的
-
-
//编辑
链接的外观如下所示:
<ul id="fotolia_menu">
<li><a href="#">Kategorie</a>
<ul>
<li><a href="#" data-paramType="cat1" data-param="3000000">Ludzie</a>
<ul>
<li><a href="#" data-paramType="cat1" data-param="3001000">W Studio</a>
<ul>
<li><a href="#" data-paramType="cat1" data-param="3001001">Mężczyzna</a></li>
<li><a href="#" data-paramType="cat1" data-param="3001002">Kobieta</a></li>
<li><a href="#" data-paramType="cat1" data-param="3001003">Niemowlę</a></li>
<li><a href="#" data-paramType="cat1" data-param="3001004">Dziecko</a></li>
-
-
-
但这不起作用:
<script type="text/javascript">
function thumb(paramType, param, page){
$.ajax({
url: "skrypt.php?paramType="+paramType+"¶m="+param+"&page="+page
}).done(function(data) {
$('#content').html(data);
});
}
$('#fotolia_menu a').click(function(){
var paramtype = $elt.data("paramType");
var param = $elt.data("param");
thumb(paramType, param, 0);
});
功能拇指(参数类型、参数、页面){
$.ajax({
url:“skrypt.php?paramType=“+paramType+”¶m=“+param+”&page=“+page
}).done(函数(数据){
$('#content').html(数据);
});
}
$(“#fotolia_菜单a”)。单击(函数(){
var paramtype=$elt.data(“paramtype”);
变量参数=$elt.data(“参数”);
拇指(paramType,param,0);
});
老实说,您可能不应该在id属性中包含该信息。您可能应该做的是:
<a href="#" data-param1="cat1" data-param2="3001001">..</a>
当HTML5提供了一种非常好的方法来存储具有数据属性的元素的元信息时,没有理由乱来拆分id标记
如果您绝对不想改变做事的方式,那么“是”split
是正确的处理方法,正如mopo922所回答的那样。老实说,您可能不应该在id属性中包含该信息。您可能应该做的是:
<a href="#" data-param1="cat1" data-param2="3001001">..</a>
当HTML5提供了一种非常好的方法来存储具有数据属性的元素的元信息时,没有理由乱来拆分id标记
如果你绝对不想改变你做事的方式,那么“是”split
是正确的处理方法,因为mopo922已经回答了这个问题。添加一个click事件,该事件拆分被单击元素的id
,并将这些值作为参数传递给thumb()
:
$(“#fotolia_菜单a”)。单击(函数(){
var pieces=$(this.attr('id').split('uu');
拇指(片[0],片[1],0);
});
或者,我非常喜欢@ThatidotGuy给出的关于使用数据-
属性的答案。添加一个单击事件,该事件拆分单击元素的id
,并将这些值作为参数传递给thumb()
:
$(“#fotolia_菜单a”)。单击(函数(){
var pieces=$(this.attr('id').split('uu');
拇指(片[0],片[1],0);
});
或者,我真的很喜欢@thatitoguy给出的关于使用data-
attributes的答案。获取锚定标记的id并使用split函数获取两个值设置锚定标记的id并使用split函数获取两个值我已经选择了你的方式。现在我的链接看起来是这样的:但这是:$('fotolia_menu a')。单击(函数(){var paramType=$elt.data(“paramType”);var param=$elt.data(“param”);thumb(paramType,param,0);});不起作用:(@Axwell你能把新的HTML和代码编辑成你原来的问题吗?很难在评论中看到所有这些。另外,我在小提琴中使用了$elt
,因为这就是我命名的JQuery对象。这就是你的名字吗?@Axwell使用$(这个)
而不是$elt
@Axwell是的,你只是盲目地从我的小提琴上复制了代码。$elt
没有在你的代码中定义。请在数据调用之前加上这行:var$elt=$(this);
var param=$(this)。数据(“param”);仍然没有任何内容。我选择了你的方式。现在我的链接看起来像这样:但这是:$(“#fotolia_menu a”)。单击(函数(){var paramType=$elt.data(“paramType”);var param=$elt.data(“param”);thumb(paramType,param,0);});不起作用:(@Axwell你能把新的HTML和代码编辑成你原来的问题吗?很难在评论中看到所有这些。另外,我在小提琴中使用了$elt
,因为这就是我命名的JQuery对象。这就是你的名字吗?@Axwell使用$(这个)
而不是$elt
@Axwell是的,你只是盲目地从我的小提琴上复制了代码。$elt
没有在你的代码中定义。在数据调用之前放一行:var$elt=$(this);
var param=$(this)。data(“param”);仍然没有任何内容。
<a href="#" data-param1="cat1" data-param2="3001001">..</a>
var param1 = $elt.data("param1");
var param2 = $elt.data("param2");
<script>
$('#fotolia_menu a').click(function(){
var pieces = $(this).attr('id').split('_');
thumb(pieces[0], pieces[1], 0);
});