if (fromObject == null) fromObject = primaryTable;
var id = fromObject+"_"+toObject;
var tr = $('<tr id="'+id+'"></tr>').appendTo($("#joins"));
tr.append('<td width=20%><select style="width:100%" type="text" name="from_object" id="from_object" value=""></select></td>');
tr.append('<td width=20%><select style="width:100%" type="text" name="to_object" id="to_object" value=""></select></td>');
tr.append('<td width=20%><input style="width:100%" type="text" name="from_column" id="from_column" value="" readonly></td>');
tr.append('<td width=20%><input style="width:100%" type="text" name="to_column" id="to_column" value="" readonly></td>');
tr.append('<td width=20%><select style="width:100%" type="text" name="join_type" id="join_type" value=""></select></td>');
var combo3 = $("select[name=from_object]");
这是我的问题。我经历了多次附加的过程,并留下了许多具有相同名称的选择标签。我想弄清楚如何选择'from_object'。我必须动态地这样做吗?现在combo3总是选择第一个标签。
答案 0 :(得分:1)
我不完全理解这个问题。获得第一次使用
$('select[name=from_object]:first').doWhatever():
获取所有用途
$('select[name=from_object]').each(function(){
$(this).doWhatever();
});
但是从不使用相同的ID两次。
答案 1 :(得分:0)
你的html对那些重复的ID无效。我试着立刻解决你要求的问题和重复的ID问题。如果不能直接开箱即可,它应该会给你一个良好的解决方案。
if (fromObject == null) fromObject = primaryTable;
var id = fromObject+"_"+toObject;
// don't append to the DOM until the last second, i moved tr.appendTo() to the end
var uniqueIdIndex = $("tr[id^='"+id+"_tr'").length +1; // get a unique index
// the idea of cloning HTML and appending it takes some getting used to, but makes it easy to change and maintain. don't let it throw you
// all this cloning stuff is to get you some Unique Ids.
var masterTR = $('<tr id="'+id+'_tr_'+uniqueIdIndex+'"></tr>');
var masterTD = $('<td width="20%"></td>');
var masterDD = $('<select type="text" style="width:100%"></select>');
var masterCI = $('<input style="width:100%" type="text" value="" readonly></input>');
// grab a default drop down, set the name, ID and value
var currentInput = masterDD.clone().attr({"name":"from_object","id": id+"_from_object_"+uniqueIdIndex,"value":""});
var tr = masterTR.clone(); // get a Row
tr.append( masterTD.clone().append(currentInput) ); // clone a td, append the input, and append that to the row
// grab a default drop down, set the name, ID and value
currentInput = masterDD.clone().attr({"name":"to_object","id": id+"_to_object_"+uniqueIdIndex,"value":""});
tr.append(masterTD.clone().append(currentInput));
currentInput = masterCI.clone().attr({"name":"from_column","id": id+"_from_column_"+uniqueIdIndex,"value":""});
tr.append(masterTD.clone().append(currentInput));
currentInput = masterCI.clone().attr({"name":"to_column","id": id+"_to_column_"+uniqueIdIndex,"value":""});
tr.append(masterTD.clone().append(currentInput));
currentInput = masterDD.clone().attr({"name":"join_type","id": id+"_join_type_"+uniqueIdIndex,"value":""});
tr.append(masterTD.clone().append(currentInput));
tr.appendTo($("#joins"));
//optionally, find the most recently added from_column "select[name='from_column']"
var combo3 = $("[id^='"+id+"_from_column]", "#joins").filter(":last");
if(fromObject == null)fromObject = primaryTable; var id = fromObject +“_”+ toObject; var tr = $('')。appendTo($(“#join”));
tr.append('<td width=20%><select style="width:100%" type="text" name="from_object" id="'+id+'from_object" value=""></select></td>');
tr.append('<td width=20%><select style="width:100%" type="text" name="to_object" id="'+id+'to_object" value=""></select></td>');
tr.append('<td width=20%><input style="width:100%" type="text" name="from_column" id="'+id+'from_column" value="" readonly></td>');
tr.append('<td width=20%><input style="width:100%" type="text" name="to_column" id="'+id+'to_column" value="" readonly></td>');
tr.append('<td width=20%><select style="width:100%" type="text" name="join_type" id="'+id+'join_type" value=""></select></td>');
var combo3 = $("#"+id+"from_object");