我有以下jQuery用选择字段替换输入字段。
input = $("input[id$='id_var']")[0];
input_class = input.getAttribute("class");
input_id = input.getAttribute("id");
input_name = input.getAttribute("name");
//remove input and replace with a select drop down
input.replaceWith("<select class='"+input_class+"' id='"+input_id+"' name='"+input_name+"'></select>");
加载页面时会运行。但是不是用select html替换元素,而是用html替换为text:
"<select class='input_class_text' id='input_id_var' name='input_name_text'></select>"
所以在页面上而不是选择你只看
<select class='input_class_text' id='input_id_var' name='input_name_text'></select>
上述行为的片段:
input = $("input[id$='id_var']")[0];
input_class = input.getAttribute("class");
input_id = input.getAttribute("id");
input_name = input.getAttribute("name");
//remove input and replace with a select drop down
input.replaceWith("<select class='"+input_class+"' id='"+input_id+"' name='"+input_name+"'></select>");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="id_var" type="text" />
有人能告诉我为什么会这样吗?
由于
答案 0 :(得分:5)
您在DOM元素上调用.replaceWith()
,而不是在JQuery对象上调用input = $("input[id$='id_var']");
。
只需编辑您的第一行:
input_class = input.attr("class");
input_id = input.attr("id");
input_name = input.attr("name");
然后调整你的下一行:
SELECT recipes_Name
FROM tblrecipes
INNER JOIN tblingredients
ON tblrecipes.recipes_ID = tblingredients.ingredients_ID
WHERE ingredients_name = variable1 AND variable2 AND variable3