Javascript Jquery使用select LI更改文本的值

Javascript Jquery使用select LI更改文本的值,javascript,jquery,html,Javascript,Jquery,Html,我有一个带有UL和LI的下拉框,如下所示: <ul class="dropdown-menu" id="rmenu" role="menu"> <li><a href="#" data-value="photo">photo</a></li> <li><a href="#"data-value="video">video</a></li> <li><a href="#"d

我有一个带有UL和LI的下拉框,如下所示:

<ul class="dropdown-menu" id="rmenu" role="menu">
<li><a href="#" data-value="photo">photo</a></li>
<li><a href="#"data-value="video">video</a></li>
<li><a href="#"data-value="audio">audio</a></li>
</ul>
<input type="hidden" name="search_param" value="all" id="search_param">

但它不起作用,甚至不改变name的值,我尝试了所有选项,但没有成功。

jQuery中没有方法
name()
。要更改名称属性,请改用方法

$("#search_param").attr('name',$this.data("value"));
此外,不需要获取父元素,因为数据属性设置为
a
标记而不是
li

var $this = $(this);

$(“#rmenu”)。在(“单击”,“a”,函数(e){ e、 预防默认值(); var$this=$(this); $(“#search_param”).val($this.data(“value”)); $(“#搜索参数”).attr('name',$this.data(“value”); });
jQuery中没有方法
name()
。要更改名称属性,请改用方法

$("#search_param").attr('name',$this.data("value"));
此外,不需要获取父元素,因为数据属性设置为
a
标记而不是
li

var $this = $(this);

$(“#rmenu”)。在(“单击”,“a”,函数(e){ e、 预防默认值(); var$this=$(this); $(“#search_param”).val($this.data(“value”)); $(“#搜索参数”).attr('name',$this.data(“value”); });
您的$this中有父项(
li
),但在
a
标记中有数据,而且您可以使用
.attr('name',val)
$(“#rmenu”)。在(“单击”,“a”,函数(e){
e、 预防默认值();
var$this=$(this);
$(“#search_param”).val($this.data(“value”));
$(“#搜索参数”).attr('name',$this.data(“value”);
});

您的$this中有父项(
li
),但在
a
标记中有数据,而且您可以使用
.attr('name',val)
$(“#rmenu”)。在(“单击”,“a”,函数(e){
e、 预防默认值();
var$this=$(this);
$(“#search_param”).val($this.data(“value”));
$(“#搜索参数”).attr('name',$this.data(“value”);
});


我认为你的方法行不通

<ul class="dropdown-menu" id="rmenu" role="menu">
    <li><a href="#" data-value="photo">photo</a></li>
    <li><a href="#"data-value="video">video</a></li>
    <li><a href="#"data-value="audio">audio</a></li>
</ul>
<input type="hidden" name="search_param" value="all" id="search_param">
<script>
$(function(){
    $('#rmenu > li > a').click(function(){
        var val = $(this).attr('data-value');
        $('#search_param').attr('name', val);
        $('#search_param').val(val);
    });
});
</script>
$(函数(){ $('#rmenu>li>a')。单击(函数(){ var val=$(this.attr('data-value'); $('search_param').attr('name',val); $('search_param').val(val); }); });

这应该行得通

我认为你的方法行不通

<ul class="dropdown-menu" id="rmenu" role="menu">
    <li><a href="#" data-value="photo">photo</a></li>
    <li><a href="#"data-value="video">video</a></li>
    <li><a href="#"data-value="audio">audio</a></li>
</ul>
<input type="hidden" name="search_param" value="all" id="search_param">
<script>
$(function(){
    $('#rmenu > li > a').click(function(){
        var val = $(this).attr('data-value');
        $('#search_param').attr('name', val);
        $('#search_param').val(val);
    });
});
</script>
$(函数(){ $('#rmenu>li>a')。单击(函数(){ var val=$(this.attr('data-value'); $('search_param').attr('name',val); $('search_param').val(val); }); });
这应该行得通

试试这个:

<script type = "text/javascript"> 
$("#rmenu").on("click", "a", function(e){
    e.preventDefault();
    $("#search_param").attr("name",$(this).data("value"))
    $("#search_param").attr("value",$(this).data("value"))
});
</script>

$(“#rmenu”)。在(“单击”,“a”,函数(e){
e、 预防默认值();
$(“#搜索参数”).attr(“名称”,$(此).data(“值”))
$(“#搜索参数”).attr(“值”),$(this.data(“值”))
});
试试这个:

<script type = "text/javascript"> 
$("#rmenu").on("click", "a", function(e){
    e.preventDefault();
    $("#search_param").attr("name",$(this).data("value"))
    $("#search_param").attr("value",$(this).data("value"))
});
</script>

$(“#rmenu”)。在(“单击”,“a”,函数(e){
e、 预防默认值();
$(“#搜索参数”).attr(“名称”,$(此).data(“值”))
$(“#搜索参数”).attr(“值”),$(this.data(“值”))
});

why
var$this=$(this.parent()如果单击打开并且数据-是一个属性?1)
var$this=$(this).parent()变量的坏名称。请选择其他名称,如
parentVal
2)什么是
#rmenu
的父元素?为什么
var$this=$(this).parent()如果单击打开并且数据-是一个属性?1)
var$this=$(this).parent()变量的坏名称。请选择一个不同的名称,如
parentVal
2)什么是
#rmenu
的父元素?这不起作用吗
$(“#搜索参数”).val($this.data(“value”)?是的,当然@这将不起作用
$(“#search_param”).val($this.data(“value”))?是的,当然@古拉迪奥