3

我需要改变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>
4

5 回答 5

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

请参阅:属性等于选择器 [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);
于 2012-08-10T22:03:22.257 回答
2

仅替换 textnode :

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

小提琴

于 2012-08-10T22:11:36.413 回答
2

那么试试这个:

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

小提琴

不过,我不保证它的性能:),否则它应该这样做。

于 2012-08-10T22:19:49.050 回答
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");
于 2012-08-10T22:11:20.643 回答
0

会有一个很好的解决方案,因为在 HTML 中您无法选择和处理文本。您只能影响周围的标签。

你现在有一些可能性。

  • 关闭输入标签之前的标签并更改孔标签的内容
  • 将标签的文本包装在另一个标签中,如跨度并影响跨度
  • 不要改变你的 HTML 结构,使用 JS 来获取标签的内容并替换之前被正则表达式过滤的空白文本
  • 在JS中保存输入元素,替换标签的洞内容然后再次追加输入元素
于 2012-08-10T22:11:43.040 回答