Javascript Jquery使用select LI更改文本的值
我有一个带有UL和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 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(“值”))
});
whyvar$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”))代码>?是的,当然@古拉迪奥