2016-04-28 696 views
0

我想访问特定div内的input。我有这样的HTML:获取其他元素内的元素

<div id="'.str_replace(' ','',$systeme_culture['nom_plante']).'"> 
     <table class="table"> 
      <th> 
       <tr colspan="2"> 
         <label>Nom : </label> 
         <input id="nom_itk" value="test"> 
       </tr> 
      </th> 
     </table> 
</div>' 

我要访问的全球DIV中的ID nom_itk,但我不知道该怎么办。我尝试了.find(),但它不起作用。

我的JS是:

$('#'+nom_culture).find('#nom_itk').html("test"); 

全球DIV被称为与JS变量nom_culture

在此先感谢!

+1

为什么不只是'$('#nom_itk')。html(“测试“);'??? –

+0

'nom_culture'变量的值是多少?是否与'str_replace('','',$ systeme_culture ['nom_plante'])''相同? – Rayon

+1

您的HTML无效。标签和输入移动到桌子外面。 – Oriol

回答

1

与您的代码的问题是,你正在使用html()而不是在val()

$('#'+nom_culture).find('#nom_itk').val("test"); 

你的问题,你也可以使用

$('#'+nom_culture + " #nom_itk").val("test"); 

(一个两者之间的空间)选择中的元素其他元素

+0

'.html()'只是为了测试,知道我是否可以访问正确的元素。但是这个代码不起作用:/ – Erlaunis

+0

它使用'.val()'谢谢! – Erlaunis

0

问题是你试图访问一个没有内容的输入元素(所以你不能用0123改变它),但是是一个值。

假设nom_culture变量找到合适的元素(的#nom_itk父),这会做你想要什么:

$('#'+nom_culture).find('#nom_itk').val('test'); 
+0

感谢但'.html()'在这里只是为了检查我是否可以访问正确的元素,而我不能。 – Erlaunis

+1

在这种情况下,请编辑您的问题以说明您的实际工作模型,或指定您的问题。 find()是你想要做的正确的解决方案 - 但只要你用html()测试它,你就不会看到任何结果。 – TheThirdMan

0

以下脚本会给你nom_itk值测试

$('#'+nom_culture).find('#nom_itk').val(); 

及以下将为您提供对象阵列

$('#'+nom_culture).find('#nom_itk').val('test'); 
$('#'+nom_culture).find('#nom_itk').html('test');