span标签中有一个input标签,用jquery获取span中的html内容,却获取不到在input中输入的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了span标签中有一个input标签,用jquery获取span中的html内容,却获取不到在input中输入的值相关的知识,希望对你有一定的参考价值。

html代码是:<span id="Label1"><input id="Text1" name="Text1" type="text" /></span>

jquery:
$(document).ready(function ()
$("#ImageButton1").click(function ()
alert($("#Label1").html());
);
);
然后在input中输入123,点击ImageButton1后在弹出的对话框中只显示<input id="Text1" name="Text1" type="text" />,没有input的value值,按理来说应该是<input id="Text1" name="Text1" type="text" value="123"/>,很奇怪,请高手指点这是怎么回事呢
我知道的,用val()可以获得在input中输入的值,但是我想用html()获取span标签中的html内容,不仅仅只是input的value值,请大家指点指点

将这个js(jquery-getHtml-value.js)文件引入到你的页面中,将$("#ImageButton1").html()替换成$("#ImageButton1").formhtml (),具体代码:如下
(function($)
var oldHTML = $.fn.html;
$.fn.formhtml =function()
if (arguments.length) return oldHTML.apply(this,arguments);
$("input,textarea,button", this).each(function()
this.setAttribute('value',this.value);
);
$(":radio,:checkbox", this).each(function()
if (this.checked) this.setAttribute('checked', 'checked');
else this.removeAttribute('checked');
);
$("option", this).each(function()
if (this.selected) this.setAttribute('selected', 'selected');
else this.removeAttribute('selected');
);
return oldHTML.apply(this);
;
)(jQuery);
参考技术A 输入的那就是value值,用val()方法就行追问

用val()可以获得在input中输入的值,但是我想用html()获取span标签中的html内容,不仅仅是input的value值,请指点,谢谢

参考技术B 是用这个的 $(selector).val()_返回Value属性,不是用heml()的

出自顺网络:
jQuery获得和设置_内容、属性、表单字段的值的方
一文

更多:(www).A2345.(net)

jQuery操作编辑页面,span与input标签之间的随时转换

当鼠标点击span时,span会根据需要变成input或select标签,光标移开时,又变回span标签来展示编辑后的内容。

HTML代码如下(span里的值是动态添加的,与此无关):

 1           <li>
 2               <label for="companyType">企业性质</label>
 3                 <span class="companyType spanToSelect" id="companyType"></span>
 4           </li>
 5           <li>
 6               <label for="companySize">企业规模</label>
 7               <span class="companySize spanToSelect" id="companySize"></span>
 8           </li>
 9           <li>
10               <label for="companyMsg" class="companyMsgLabel">企业简介</label>
11                 <span class="companyMsg spanToTextarea" id="companyMsg"></span>
12           </li>
13           <br>
14           <br>
15           <li>
16               联系方式
17               <hr>
18           </li>
19           <li>
20               <label for="companyAddress">企业地址</label>
21               <input type="text" name="addressSelect" id="citySelect" class="city_input" value="湖北省-武汉市-洪山区" readonly="readonly">
22           </li>
23           <li>
24                  <span id="companyAddress" class="companyAddress spanToInput"></span>
25           </li>
26           <li>
27               <label for="companyTel">企业电话</label>
28               <input type="tel" id="tel1" class="tel1" placeholder="">
29               <select name="tel2" id="tel2" class="smallBtn2">
30                   <option value="021">021</option>
31               </select>
32               <span class="companyTel spanToInput" id="companyTel"></span>
33           </li>
34           <li>
35               <label >企业邮箱</label>
36               <span class="companyMail spanToInput" id="companyMail"></span>
37           </li>
38           <li>
39               <label for="companyIp">企业网址</label>
40               <span class="companyIp spanToInput" id="companyIp"></span>
41           </li>

js代码如下:

1、input select textarea转span
 1 var switchToSpan=function () {
 2             // console.log($(this).attr("id"));
 3             var cId=$(this).attr("id");//获取当前点击input的id
 4            //console.log($("#"+cId).prop(‘nodeName‘).toLowerCase());
 5             var thisTag=$("#"+cId).prop(‘nodeName‘).toLowerCase();
 6         var a,b=null;
 7         if(thisTag=="input"){
 8             a=$(this).val();
 9              b=switchToInput;
10         }
11         else if(thisTag=="select"){
12              a=$(this).find("option:selected").text();//获取selected的option文本值
13              b=switchToSelect;
14         }
15         else if(thisTag=="textarea"){
16             a=$(this).val();
17             b=switchToTextarea;
18         }
19         var $span=$("<span>",{
20                     text: a
21                 });
22             $span.addClass(cId);
23             $span.attr("id",cId);
24             $(this).replaceWith($span);
25             $span.on("click",b);
26 };
2、span转input
 1 var switchToInput=function () {
 2             //console.log($(this).attr("id"));
 3             var cId=$(this).attr("id");//获取当前点击span的id
 4             var $input=$("<input>",{
 5                 val:$(this).text(),    
 6                 type:"text"
 7             });
 8             $input.addClass(cId);
 9             $input.attr("id",cId);
10             $(this).replaceWith($input);
11             $input.on("blur",switchToSpan);//失去焦点时,执行switchToSpan函数
12             $input.select();
13         };

  3、span转select

 1  var switchToSelect=function () {
 2 
 3             var cId = $(this).attr("id");//获取当前点击input的id
 4             var $select = $("<select></select>");
 5             var arr=[["国有企业","集体企业","私营企业","三资企业"],["人数<20","20≤人数<300","300≤人数<1000","1000≤人数<5000","人数≥5000"]];
 6             var j=null;
 7             if(cId=="companyType"){
 8                 //var arr1=new Array("国有企业","集体企业","私营企业","三资企业");
 9                 //console.log(arr1);
10                 $select.addClass("midBtn1");
11                 j=0;
12             }
13             else if(cId=="companySize"){
14                 j=1;
15                 $select.addClass("midBtn1");
16             }
17             for(var i=0;i<arr[j].length;i++){
18                 $select.append("<option value=‘"+arr[j][i]+"‘>" +arr[j][i]+"</option>");
19             }
20             $select.addClass(cId);
21             $select.attr("id", cId);
22             $(this).replaceWith($select);
23             $select.on("blur",switchToSpan);
24 }

4、span转textarea

 1  var switchToTextarea=function () {
 2             var cId = $(this).attr("id");
 3             var $textarea=$("<textarea cols=‘50‘ rows=‘6‘></textarea>");
 4             $textarea.val($(this).text());
 5             $textarea.addClass(cId);
 6             $textarea.attr("id",cId);
 7             $(this).replaceWith($textarea);
 8             $textarea.on("blur",switchToSpan);
 9             $textarea.select();
10 
11         }

5、给span添加点击事件

1     $(".spanToInput").on("click",switchToInput);
2     $(".spanToSelect").on("click",switchToSelect);
3     $(".spanToTextarea").on("click",switchToTextarea);

 

以上是关于span标签中有一个input标签,用jquery获取span中的html内容,却获取不到在input中输入的值的主要内容,如果未能解决你的问题,请参考以下文章

jQuery操作编辑页面,span与input标签之间的随时转换

点击span标签中的文字如何触发一个链接,若用jquery的方法来用的话,又该如何做?

在js或jquery中,我要清除里面的span标签,但是里面还有a标签,我要保留a标签删除span

jquery如何获取子标签的IDŀ

jquery 点击编辑按钮 当前行tr 中的td 全部 变为input

jquery点击事件捕获