使用attr()方法在jQuery中更改多个属性以及<a>标记的文本

时间:2019-07-09 11:00:42

标签: jquery

这是我要操作的元素:

private IEnumerator GetUserDataRequest(string PHPSESSID) { UnityWebRequest request = UnityWebRequest.Get(myUrl); // This one gives me an InvalidOperationException request.SetRequestHeader("Cookie", "PHPSESSID=" + PHPSESSID); // And those gives me an 403 forbidden response from the server //request.SetRequestHeader("PHPSESSID", PHPSESSID); //request.SetRequestHeader("Set-Cookie", "PHPSESSID=" + PHPSESSID); yield return request.SendWebRequest(); if (request.isNetworkError) { Debug.LogWarning("Error while getting the user data."); } else { //... } }

这是jQuery代码,用于更改该元素的<a href="https://www.google.com" id='link_one'>This is Google!</a>href属性:

text

以上jQuery代码仅更改了$('#link_one').attr({ href: 'https://stackoverflow.com', text: 'This is StackOverflow!' }); 属性,而没有更改href属性。但是,以下方法有效:

text

我尝试过的:

$('#link_one').text('This is StackOverflow!');

我什至尝试了上述方法,但没有将属性名称放在引号中。我应该将什么放入attr()参数中以达到所需状态?

3 个答案:

答案 0 :(得分:2)

文本不是<a>元素的属性。您必须使用jquery的.text函数来分配文本。

$('#link_one').attr({
    href: 'https://stackoverflow.com'
}).text('This is StackOverflow!');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<a id="link_one" href="">Initial text</a>

答案 1 :(得分:1)

锚点没有属性文本。您尝试更改text / html not属性,以了解为什么它不起作用。尝试这种方式:

variable.hasOwnProperty('a')
$('#link_one').attr({
  href: 'https://stackoverflow.com',
  placeholder: 'This is StackOverflow!'
}).html('This is StackOverflow!');

答案 2 :(得分:1)

首先,标签内的文本(这是Google!)不是标签的属性。它只是标签的一个元素。这就是为什么您不能使用attr()方法更改该文本的原因。您必须使用text()或html()方法进行更改。但是您可以更改href,因为它是标签的属性

$('#link_one').attr({
    href: 'https://stackoverflow.com'
}).text("That is stackoverflow");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="https://www.google.com" id='link_one'>This is Google!</a>