这应该非常简单 - 从h1
代码获取内容,删除span
代码并将剩余代码放入input
代码
我有这个HTML:
<div id="contentArea">
<h1><span>Course</span>Arrangementname<h1>
<input type="hidden" id="arr1Form_Arrangement" name="arr1Form_Arrangement">
</div>
的jQuery
var eventname = $('#contentArea h1').html();
eventname.find("span").remove();
var eventnametrim = eventname.html();
//alert(eventnametrim);
$( "input[name*='Form_Arrangement']" ).val( eventnametrim );
但没有任何反应 - 警报也是空的。我的萤火虫告诉我
"eventname.find is not a function"
它是jQuery 1.9.0
有人可以告诉我发生什么事吗?
答案 0 :(得分:2)
如果所需的输出是Arrangementname
,则问题是第一行,应该是:
var eventname = $('#contentArea h1');
...因为这会使eventname
成为一个jQuery对象,您可以使用.find()
获取范围并使用现有的第二行删除它。虽然这实际上完全从页面中删除了span元素,但您可能希望这样做:
var eventname = $('#contentArea h1').clone();
...以便您拥有一份不会影响页面上显示内容的工作副本。
下一个问题是你有一个名为eventnametrim
的变量,然后你可以在代码的最后一行引用$eventnametrim
。从后者中删除$
,以便名称匹配。
如果您尝试获得CourseArrangementname
的输出,即忽略<span>
和</span>
标记但保留文本内容,则可以这样做:< / p>
var eventname = $('#contentArea h1').text();
$( "input[name*='Form_Arrangement']" ).val( eventname );
答案 1 :(得分:1)
然后使用:
var eventname = $('#contentArea h1').text();
$( "input[name*='Form_Arrangement']" ).val( eventname );
使用.text()的.html() instad和eventname将包含不带html的文本;)
因为如果您删除了跨度,那么您将删除标记及其内容(您想要的文本)
答案 2 :(得分:0)
尝试使用text()代替html()
:
var eventname = $('#contentArea h1').text();
$( "input[name*='Form_Arrangement']" ).val( $.trim(eventname ));
<强> Working Demo 强>
答案 3 :(得分:0)
尝试:
var eventname = $('#contentArea h1');
html不是jQuery对象,我相信,它正在发生的事情。
答案 4 :(得分:0)
我在控制台中收到错误。尝试这样的事情: http://jsfiddle.net/GmzXG/
$('#contentArea h1').find("span").remove();
var eventname = $('#contentArea h1').html();
//alert(eventnametrim);
$( "input[name*='Form_Arrangement']" ).val( eventname );