我在var中包含一个名为“content”的HTML字符串。 HTML字符串包含带有id的span,例如:
<span id="valuespan">This is the value of a text box</span>
我想使用span标记之间包含的任何内容作为复选框的值,但我不确定如何执行此操作。
任何人都可以帮助我吗?
谢谢!
答案 0 :(得分:1)
由于您的字符串仍然是字符串,而不是页面上的元素,您可以将尖括号与正则表达式匹配,或使用jQuery创建元素并提取源
<强>正则表达式强>
var content = '<span id="valuespan">This is the value of a text box</span>';
var text = content.match(/>(.*)<\/span>/)[1];
$(target-checkbox).val(text);
<强>的jQuery 强>
var content = '<span id="valuespan">This is the value of a text box</span>';
var text = $(content).text();
$(target-checkbox).val(text);
正则表达式很糟糕,如果可能的话应该避免,但这也是jQuery的可怕使用。如果可能的话,你应该在信息链中看得更远,并以另一种方式处理文本。
编辑评论:对于具有唯一ID的多个范围
var content = '<span id="valuespan1">This is the value of a text box</span><span id="valuespan2">This is the value of a text box</span>';
var fragment = $('<div />').html(content);
var text1 = fragment.find('#valuespan1').text();
var text2 = fragment.find('#valuespan2').text();
答案 1 :(得分:0)
获取字符串:
var contents = $('#valuespan').text();
将其应用于复选框:
$('#checkbox').val(contents);
答案 2 :(得分:0)
这假设span字符串不在页面中。我将内容变量包装在一个额外的div中,以确保可以使用find
,无论跨度是什么级别的html hirarchy
DEMO:http://jsfiddle.net/8WZJT/
var content='<span id="valuespan">This is the value of a text box</span>';
$('#test').val($('<div>').append(content).find('#valuespan').text()).click(function(){
alert($(this).val())
})
答案 3 :(得分:0)
为了动态创建复选框,答案是:http://jsfiddle.net/martinschaer/zQAHj/
var span = '<span id="valuespan">This is the value of a text box</span>';
var value = $(span).text();
var id = $(span).attr('id');
var field = '<input type="checkbox" name="' + id + '" id="' + id + '" value="' + value + '" />';
field += '<label for="' + id + '">' + value + '</label>';
$('#theform ul').append('<li>' + field + '</li>');
对于变量中的多个范围: http://jsfiddle.net/martinschaer/2b5Lj/
var span = '<span id="valuespan">This is the value of a text box</span><span id="valuespan2">This another text box value</span>';
$('span', $('<div>' + span + '</div>')).each(function(){
var value = $(this).text();
var id = $(this).attr('id');
var field = '<input type="checkbox" name="' + id + '" id="' + id + '" value="' + value + '" />';
field += '<label for="' + id + '">' + value + '</label>';
$('#theform ul').append('<li>' + field + '</li>');
});