2015-10-14 55 views
0

我正在寻找一种方法来从表中选择单元格与img标签,并更改只使用JS的样式。如何使用JavaScript查找带有img标签的单元格?

<table border="1" id="table1"> 
<tr> 
<td id="0"><img src="background.jpg"></td><td id="1"></td><td id="2"></td><td id="3"></td> 
</tr> 
</table> 

我想用我的形式,但我不知道如何使它工作。 我想这(在它,我想看看通过ID中IMG的形式进入,但我知道 - 它不工作)

function form1() { 
    var x = document.getElementsByTagName("img"); 
    var y = document.getElementById('formu').value; 
if (x=y) { 

    console.log(x) 

} 




<form> 
    <fieldset> 
     <label for="ship"></label> 
     <input type="text" id="formu" name="ship" value="" /> 
    </fieldset> 

    <input type="button" onclick="check()" value="fire!"> 
</form> 

如果以这种形式我就会把ID单元,其中存在标签IMG我想改变细胞的风格。

回答

2

在javascript中,您可以选择相似图片:

var tdImages = document.querySelectorAll('td > img'); 

然后对它们进行迭代,并使用parentNode

var td, index = 0, length = tdImages.length; 
for (; index < length; index++) { 
    td = tdImages[index].parentNode; 
} 

这里是小提琴例如: http://jsfiddle.net/y1vseo5t/

编辑:所以你想让用户输入一个ID我n输入,并从中确定该表数据元素是否具有图像,如果它改变了某些样式。

http://jsfiddle.net/y1vseo5t/1/

选择,所以我改变了对表中的数据元素的IDS是TD0,TD1不能以数字开头...

如果必须用数字作为粘在第一个字符这里的ID是另一种解决方案: http://jsfiddle.net/y1vseo5t/2/

+0

不错!但我只有一个要求。 如何将它与表单连接?我使用这个 检查表单值var y = document.getElementById('formu')。value; – MMon

+0

我很乐意提供帮助,但我不确定我是否通过将其与表单连接来理解您的意思?我不认为价值是形式上的合法属性/财产。那么你试图从表单中获得什么价值?也许在上面显示更多HTML,以便我可以看到你如何使用表单。 – AtheistP3ace

+0

我修改了我的请求 – MMon

0

这是jQuery中,最好的做法在这里你可以使用has选择

$("td").has("img").each(function() { 
}); 

这里是JavaScript解决方案

var cellsWithImage = document.querySelectorAll("td > img"); 

for (var i = 0; i < cellsWithImage.length; i++) { 
    cellsWithImage[i] = cellsWithImage[i].parentNode; 
} 

请注意,我们必须使用循环,因为数组方法filtermap不适用于DOM集合。

我有关于您的代码的另一个说明。您正在使用document.getElementsByTagName函数,但它返回的不是DOM对象的集合。您需要将对象的索引放在括号内以引用特定图像。

document.getElementsByTagName("img")[0]  // Returns first image 
+0

但是如何让它只使用JS? – MMon

相关问题