如何更改不能通过标签,ID或类选择的文本?

时间:2012-08-10 22:01:35

标签: javascript jquery html

我需要更改text to change。如何用jQuery做到这一点?

<form name="loginform" id="loginform" action="" method="post">
    <p>
        <label for="user_login">text to change<br />
        <input type="text" name="log" value="" /></label>
    </p>
</form>

5 个答案:

答案 0 :(得分:3)

$("label[for='user_login']").text("New text");

请参阅:Attribute Equals Selector [name="value"]


我看,有点不同,如:

var splitElem = "<br>";
var saveHtml = $("label[for='user_login']").html().split(splitElem)[1];
var newText = "New Text"
var newHtml = newText + splitElem + saveHtml;
$("label[for='user_login']").html(newHtml);

答案 1 :(得分:2)

仅替换textnode:

var newText = 'some text',
    elm = $('label[for="user_login"]').children();
    $('label[for="user_login"]').html(newText).append(elm);

FIDDLE

答案 2 :(得分:2)

然后尝试一下:

var newText = 'some text';
$('label[for="user_login"]').contents().filter(function() { return this.nodeType == 3; }).first().replaceWith(newText);​

Fiddle

我对此表现不做任何保证:)但否则应该这样做。

答案 3 :(得分:0)

使用span标记包裹文字。

<label for="user_login"><span>text to change<span><br />
<input type="text" name="log" value="" /></label>

$("label[for=user_login] > span").text("replaced text");

答案 4 :(得分:0)

有一个很好的解决方案,因为在HTML中你不能选择和接近文本。您只能影响周围的标签。

现在有一些可能性。

  • 关闭输入标记之前的标签并更改孔标签的内容
  • 将标签的文本包装在另一个标签中,例如跨度和affekt span
  • 不要更改HTML结构,使用JS获取标签内容并替换之前使用正则表达式过滤的空白文本
  • JS中的
  • 保存输入元素,替换标签的孔内容,然后再次附加输入元素