2012-09-26 54 views
2

我在使用JQuery更改标签的值时遇到了问题。特别是:使用JQuery定位标签

<label for="answer[649][radiobutton_other_value]">Other:</label> 

我的目标是将值“Other:”更改为其他值。有什么方法可以使用“answer [649] [radiobutton_other_value]”作为定位标签的锚点吗?

+2

添加ID属性的标签和将有所帮助。不需要像检查for属性那样令人费解。 – JohnFx

+0

不幸的是,我正在盗用现有的网页,因此我无法将ID添加到代码中。否则我会同意。 :) – Anthony

回答

3

肯定的,只是针对与label[for^="answer[649]"]

$('label[for^="answer[649]"]').text('other value'); 

这个标签会发现一个标签,其for属性开始answer[649]并将其文本更改

+0

这工作完美 - 谢谢!我不知道“^”。它有什么作用? – Anthony

+0

它会检查从指定关键字开始的字符串匹配 –

+0

@Anthony,我在我的答案中写道:) – fcalderan

0
$('label[for*=answer]').html('New Value') 

// OR

$('[label[for^=answer]').html('New Value') 

// OR

$('label[for="answer[649][radiobutton_other_value]"]').html('New Value') 
+1

对不起,您需要使用'.html',而不是'.val' – Ian

+2

在回答和阅读时,不应该急于再'':/' – Stphane

+0

肯定会做.. :) –

1

如果可能的话,您将希望通过标签上方的id选择一些内容来缩小范围。然后这样做:

$("#ParentElem").find("label[for='answer[649][radiobutton_other_value]']").text("New Text Here"); 

如果不是可以缩小选择的范围或者它是一个非常小的页面,那么这将工作:

$("label[for='answer[649][radiobutton_other_value]']").text("New Text Here"); 
+0

谢谢jholloman! – Anthony