通过JQuery获取在数据属性中传递的元素的值
我在数据元素中填充了一些字段名。我试图在表单中用字段名及其对应的值形成一个查询字符串,以便在jQueryAjax中使用。但是,下面的代码不适用于我通过JQuery获取在数据属性中传递的元素的值,jquery,Jquery,我在数据元素中填充了一些字段名。我试图在表单中用字段名及其对应的值形成一个查询字符串,以便在jQueryAjax中使用。但是,下面的代码不适用于我 $(".linkedfill").change(function(){ var params = $(this).data("select-params").split(","); $.each(params, function(index,value){ pname = value.slice(value.IndexOf("[")
$(".linkedfill").change(function(){
var params = $(this).data("select-params").split(",");
$.each(params, function(index,value){
pname = value.slice(value.IndexOf("["), value.IndexOf("]"));
pval = $(this).parents().find("[name='"+value+"']").val();
addparams = addparams + "&" + pname + "=" + pval;
});
});
字段名将类似于标题['fldname']
,并且该字段在相同的表单中的某个位置可用。数据选择参数类似于data select params=“header['fld1'],header['fld2']”
更新:我的字段html如下所示:
<input name='header[fld1]' />
<input name='header[fld2]' />
<select class='linkedfill' name='pselect' data-select-params="header[fld1],header[fld2]">
<option value="opt1">Option 1</option>
<option value="opt2">Option 2</option>
</select>
选择1
选择2
我试图用jquery获取header[fld1]
和header[fld2]
的值,并从数据中形成一个查询字符串
有人能帮我修一下吗?提前谢谢。为什么不制作一个参数数组,比如:
//if you need you can iterate the header[h1]..header[hn] push inside the function below
$('.linkedfill').data('select-params', ["header[h1]","header[h2]",...,"header[hn]"]);
然后使用
$.each($('.linkedfill').data() , function() {
console.log($('.linkedfill').data());
// ..do your stuff..
})
这是一把小提琴试试这个:
var data="header['fld1'],header['fld2']";
var params = data.split(",");
var addparams='';
$.each(params, function(index,value){
console.log(value.indexOf("['")+','+value.indexOf("']")+','+value);
pname = value.substring(value.indexOf("['")+2, value.indexOf("']"));
pval = $('form').find("header["+pname+"]").val();
addparams = addparams + "&" + pname + "=" + pval;
console.log(addparams);
});
小提琴:
我不知道你想要什么但你可以简单的说
var data="fld1,fld2";
var params = data.split(",");
var addparams='';
$.each(params, function(index,value){
pval = $('form').find("header["+value+"]").val();
addparams = addparams + "&" + value + "=" + pval;
console.log(addparams);
});
我想我的细节不清楚。更新了问题的更多细节。谢谢你的努力,谢谢。我可以解决问题的第一部分。pname使用
pname=value.slice(value.indexOf(“[”)+1,value.indexOf(“])但是,pval不获取任何值(未定义)。更新了我的问题和更多细节。我认为问题在于$(this)
部分,因为上下文从基本对象(.linkedfill
)更改为参数
?我尝试了$('form')。查找..
,但也不起作用。@Ravi测试上面的内容我已经做了更改。您好。谢谢我不能硬编码“header”,因为它可以是任何东西。我发现问题与我所怀疑的对象上下文有关。我添加了var oelem=$(this);//linkedfill
位于顶部,并将pval行编辑为pval=oelem.parents()代码>哪个有效。