是否可以使用JQuery隐藏输入元素和输入后的文本?生成代码,因此我无法更改文本,将其包装在一个范围内或以任何方式更改它。
<label>Event Location <span class="req">*</span></label><br>
<input type="radio" name="a22" id="a22_0" value="Lafayette LA">Lafayette LA<br>
<input type="radio" name="a22" id="a22_1" value="Houston TX">Houston TX<br>
<input type="radio" name="a22" id="a22_3" value="San Antonio TX">San Antonio TX
答案 0 :(得分:1)
您需要迭代父元素(示例中的TD添加为答案),找到单选按钮后面的所有文本元素,然后将它们包装在隐藏的跨度中:
e.g。
JSFiddle: http://jsfiddle.net/TrueBlueAussie/6gzfLorp/3/
$('td').contents().each(function (e) {
if (this.nodeType == 3 && $(this).prevAll(':radio').length) {
$(this).wrap($('<span>').hide());
}
});
注意:你的问题有点含糊不清,但从你的回答中可以看出你有TD,你可以隐藏TD的所有内容:
http://jsfiddle.net/TrueBlueAussie/6gzfLorp/7/
$('.set-cities td').each(function (e) {
$(this).contents().wrapAll($('<span>').hide());
});
答案 1 :(得分:0)
它包含在td标签中。这就是我现在所拥有的:
$("label:contains('Event Location')").parent("td").wrap("<span class='set-cities'></span>");
$('.set-cities').empty();
$('.set-cities').append("<td><label>Event Location <span class='req'>*</span></label><br><input type='radio' name='aa2' id='aa2_1' value='Houston TX' checked='checked'>Houston TX<br></td>");
我只想更改整个文本块,而不仅仅是城市名称。
答案 2 :(得分:0)
如果您想直接替换文本节点,可以使用以下方法。我借鉴https://stackoverflow.com/a/298758/728393并根据您的情况量身定做
function replaceTextAfter(selector,newtext){
var textnode = $(selector).parent().contents() // we need to contents as a collection
.filter(function(){
return this.nodeType == 3 && $(this).prev().is($(selector)); //return true if node is text and the previous node is our selector
});
textnode[0].data = newtext; //change the text
}
replaceTextAfter('#a22_0','abc');
答案 3 :(得分:0)
在元素完成后删除所有文本,直到新标记为止 http://jsfiddle.net/alemarch/hm7ey6t5/
function deleteElemPlusText( elem ) {
var contestoHtml = $(elem).parent().html()
var thisHtml = $(elem).get(0).outerHTML // $(elem).outerHTML()
var re = new RegExp(thisHtml + "([^<])*")
var newContesto = contestoHtml.replace(re, "")
$(elem).parent().html(newContesto)
}
function deleteAllElemsPlusText( toDelete ) {
var x = $(toDelete).length;
for (var i = 0; i < x; i++) {
deleteElemPlusText($(toDelete).eq(0))
}
}
deleteAllElemsPlusText( "input[type=radio]" )
注意:并非所有浏览器都具有outerHTML属性访问权限,但您可以使用此jquery插件http://www.darlesson.com/jquery/outerhtml/