我使用jquery 1.11.1
并选择1.4.2
进行多项选择
$("#<%=ddlOrg.ClientID %>").change(function() {
$("#<%=ddlOrgResult.ClientID %>").val($(this).val($(this).find("option:selected").attr("org_unit_mast_Code")));
});
返回始终为[ object object ]
。它在我用户jquery 1.4.1
时有效,但当我更改为jquery 1.11.1
时,结果变为[object object]
。为什么以及如何解决这个问题?
<asp:ListBox ID="ddlOrg" SelectionMode="Multiple" data-placeholder="Pilih …" multiple class="chosen-select" DataSourceID="odsOrgUnit" DataValueField="org_unit_mast_Code" DataTextField="org_unit_mast_Name" runat="server" ></asp:ListBox>
我在控制台上得到了这个结果
[select#MainContent_ddlOrg.chosen-select, input#MainContent_ddlOrgArray, prevObject: jQuery.fn.init[1], context: document] 0: select#MainContent_ddlOrg.chosen-select 1: input#MainContent_ddlOrgArray context: document length: 2 prevObject: jQuery.fn.init[1] proto: jQuery[0]
我需要结果为&#39; Value1,Value2,Value3&#39;有没有办法得到这个结果?
现在解决了..我将代码更改为此
var foo = [];
$(this).find("option:selected").each(function (i, selected) {
foo[i] = $(selected).val;
});
console.log(foo);
答案 0 :(得分:1)
.val()
方法获取/设置DOM元素的.value
属性。 .value
只能是一个字符串DOMString
。由于您将jQuery对象传递给方法,因此该值将转换为字符串。 [object Object]
是传递的jQuery对象的字符串表示形式。哪个jQuery对象? val
方法的返回对象作为 setter 调用:.val($(this).val(...))
您似乎希望同时修改2个元素的value
属性。为此,您应该使用val
方法2次,或使用jQuery add
方法创建2个元素的集合。
$("#<%=ddlOrg.ClientID %>").change(function() {
var attr = $(this).find("option:selected").attr("org_unit_mast_Code");
$("#<%=ddlOrgArray.ClientID %>").add(this).val(attr);
});